Q. 2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 알고 싶습니다. 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계합니다. 기간 별 방문자 수를 일별로 추출하는 쿼리를 작성해주세요. 결과 데이터에는 아래 2개 컬럼(dt - 방문일, users - 방문자수)이 들어가야하며, 방문일을 기준으로 오름차순 정렬되어있어야 합니다.
- 문제 조건 확인
1. 2021년 8월 2일부터 2021년 8월 9일까지 날짜
→ where date(~) >= date('2021-08-02') and date(~) <= date('2021-08-09')
2. 방문자 수를 일별로 추출
→ 일별: group by 일자 + 방문자수: count(distinct ~)
3. 방문일을 기준으로 오름차순 정렬
→ order by 방문일
- 테이블 확인
- 풀이과정
1. 먼저 ga 테이블을 확인한 후, 필요한 필드만 추출
select event_date_kst, user_pseudo_id
from ga
limit 1000
;
2. where 조건절과 group by + count(distinct ~ ) 문 추가
- 여기서 추출을 요구하는 필드의 필드명을 alias로 dt 와 users 라고 설정함
- 앞서 테이블에서 event_date_kst 필드의 data type 이 date 임을 확인함
- 일별 방문자 수를 카운트 하기 위해서 group by 에는 event_date_kst 로, user_pseudo_id 는 distinct 한 채로 count 함
select event_date_kst dt, count(distinct user_pseudo_id) users
from ga
where event_date_kst >= date('2021-08-02') and
event_date_kst <= date('2021-08-09')
group by event_date_kst
;
A. 최종 답안
select event_date_kst dt, count(distinct user_pseudo_id) users
from ga
where event_date_kst >= date('2021-08-02') and
event_date_kst <= date('2021-08-09')
group by event_date_kst
order by dt
;
+ 비슷한 문제
'[SQL] 연습' 카테고리의 다른 글
[solvesql] 할부는 몇 개월로 해드릴까요 (0) | 2022.10.30 |
---|---|
[solvesql] 지역별 주문의 특징 (0) | 2022.10.20 |
[solvesql] 복수 국적 메달 수상한 선수 찾기 (0) | 2022.10.09 |
[SQL] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2022.07.24 |
[mysql] 프로그래머스 우유와 요거트가 담긴 장바구니 (0) | 2022.07.22 |