✨APS (Algorithm Problem Solving)/SolveSQL

[solvesql] 일별 블로그 방문자 수 집계 / SQLite

Nyan cat 2022. 11. 25. 09:15

 

📜 문제 설명

ga 테이블에는 데이터리안 기술 블로그에 설치된 Google Analytics를 활용해 수집한 방문, 클릭 로그가 들어 있습니다.

2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 알고 싶습니다. 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계합니다. 기간 별 방문자 수를 일별로 추출하는 쿼리를 작성해주세요. 결과 데이터에는 아래 2개 컬럼이 들어가야하며, 방문일을 기준으로 오름차순 정렬되어있어야 합니다.

  • dt - 방문일
  • users - 방문자 수

 

GA 테이블

  • date | event_date_kst이벤트 날짜 (KST)
  • string | user_pseudo_id사용자의 가명처리된 ID
  • datetime | event_timestamp_kst이벤트 시각 (KST)
  • datetime | user_first_touch_timestamp_kst사용자의 첫 방문 시각 (KST)
  • string | event_name이벤트 이름
  • string | key이벤트 매개변수 키
  • string | string_value이벤트 매개변수 문자열 값
  • number | int_value이벤트 매개변수 정수 값
  • string | geo_continent이벤트가 보고된 대륙
  • string | geo_country이벤트가 보고된 국가
  • string | traffic_source_medium사용자를 획득한 매체
  • string | traffic_source사용자를 획득한 네트워크 이름

 

❓ 문제

2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 쿼리를 작성하세요.

 

🔗 문제 링크

https://solvesql.com/problems/blog-counter/

 

solvesql

© Copyright 2021-2022 solvesql.com

solvesql.com

 

💡 문제 풀이

8월 2일에서 9일까지 일자만 조회

일자별로 GROUP화

해당 날짜별로 들어온 사용자 ID를 조회하되 DISTINCT로 조회해 중복 제거

SELECT
  DATE(event_date_kst) AS dt,
  COUNT(DISTINCT (user_pseudo_id)) AS users
FROM
  ga
WHERE
  '2021-08-02' <= DATE(event_date_kst)
  AND DATE(event_date_kst) <= '2021-08-09'
GROUP BY
  DATE(event_date_kst)
반응형