On the journey of
[SolveSQL] 몇 분이서 오셨어요?, 일별 블로그 방문자 수 집계 본문
1. 몇 분이서 오셨어요? - https://solvesql.com/problems/size-of-table/
Q. Waiter's Tips 데이터에는 레스토랑에서 근무한 웨이터가 서빙했던 테이블과 팁에 대한 정보가 들어있습니다. 서빙했던 테이블 중 고객이 홀수 명이었던 경우만 보여주는 쿼리를 작성해주세요.
쿼리 결과에는 모든 컬럼이 출력되어야 합니다. 테이블 당 일행의 수는 size 컬럼에 들어있습니다. 예를 들어, 5명이서 방문한 테이블의 경우 size 컬럼의 값이 5입니다.
A. 홀수의 특징: 2로 나누면 1이 남는다 - mod 함수를 활용해보자.
select * ##모든 칼럼을 가져와야 하니까 명시 없이 *로 지정
from tips
where mod(size,2) = 1;
어렵지 않게 결과문 도출됨 !
2. 일별 블로그 방문자 수 집계 - https://solvesql.com/problems/blog-counter/
Q. ga 테이블에는 데이터리안 기술 블로그에 설치된 Google Analytics를 활용해 수집한 방문, 클릭 로그가 들어 있습니다.
2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 알고 싶습니다. 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계합니다. 기간 별 방문자 수를 일별로 추출하는 쿼리를 작성해주세요. 결과 데이터에는 아래 2개 컬럼(dt,users)이 들어가야하며, 방문일을 기준으로 오름차순 정렬되어있어야 합니다.
- dt - 방문일
- users - 방문자 수
A. 로그 기록에 null 있는지 검사할 필요가 있다(dt가 로그기록에서 파생되는 변수이므로). 이 경우엔 없었음! 그리고 SQLite문의 Where 조건문의 경우 2021.08.02~08.09면 Between '2021-08-02' AND '2021-08-09'(경계값 포함) 하면 됨 :) 이를 기반으로 작성해주면 아래와 같아진다.
SELECT event_date_kst as dt
,COUNT(distinct user_pseudo_id) as users
FROM ga
WHERE event_date_kst BETWEEN '2021-08-02' AND '2021-08-09'
GROUP BY event_date_kst
무난하게 도출! 난이도 보통이라서 왜인가 했는데, COUNT(distinct)와 Between 구문 때문이 아닐까 싶다.
'코딩테스트 > SQL' 카테고리의 다른 글
[SolveSQL]우리 플랫폼에 정착한 판매자1, 점검이 필요한 자전거 찾기 (2) | 2023.06.13 |
---|---|
[SolveSQL] 첫 주문과 마지막 주문, 많이 주문한 테이블 찾기 (0) | 2023.06.12 |
[SolveSQL] 레스토랑 웨이터의 팁 분석,최근 올림픽이 개최된 도시 (1) | 2023.06.09 |
[SolveSQL] 할부는 몇 개월로 해드릴까요,특정 컬럼만 조회하기 (0) | 2023.06.08 |
[SolveSQL] 데이터 그룹으로 묶기, 복수국적 메달 수상한 선수 찾기 (1) | 2023.06.07 |