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)를 활용하면 이벤트가 하나 이상인 방문자는 당연히 집계에 포함된다.