«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Recent Posts
Today
Total
관리 메뉴

짜리몽땅 매거진

[SQL] solvesql 코딩테스트 연습3 본문

Data/SQL

[SQL] solvesql 코딩테스트 연습3

쿡국 2024. 4. 2. 01:39

문제1.  레스토랑 웨이터의 팁 분석

출처 : solvesql 연습문제

문제 정보 : 난이도 2 / 정답률 44.53%

https://solvesql.com/problems/tip-analysis/

 

정답 쿼리

select day, time, round(avg(tip),2)as avg_tip, round(avg(size),2)as avg_size
from tips
group by day, time
order by day, time

 

문제 해설

1. 주요 포인트 1 - round, avg

select day, time, round(avg(tip),2)as avg_tip, round(avg(size),2)as avg_size

 

팁과 일행 수의 경우 날짜와 시간대에 따라 평균값으로 집계 후 소수 둘째 자리까지만 표현해야하므로 round(avg(칼럼명)으로 작성해준다.


문제2.  배송 예정일 예측 성공과 실패

출처 : solvesql 데이터리안 sql캠프 실전반

문제 정보 : 난이도 2 / 정답률 40.09%

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

 

정답 쿼리

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
order by dt

 

문제 해설

1. 주요 포인트 1 - count distinct

select event_date_kst as dt, count(distinct user_pseudo_id)as users

 

 

날짜별로 몇 명의 방문자가 방문했는지 파악해야하고, 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계하므로 그냥 count()가 아닌 count(distinct)를 활용해 순수 방문자 수를 집계한다. count(distinct)를 활용하면 이벤트가 하나 이상인 방문자는 당연히 집계에 포함된다.