On the journey of
[SolveSQL] 레스토랑의 요일별 VIP, 레스토랑의 요일별 매출 요약 본문
datarian SQL 데이터 분석 캠프 실전반
이 카테고리에서 문항을 2개 더 가져왔다. 삘 받은 지금 아주그냥 go answer go 해줘야지 ㅎㅁㅎ
1. 레스토랑의 요일별 VIP - https://solvesql.com/problems/restaurant-vip/
Q. tips 테이블에는 식사 금액, 팁, 결제자 성별, 요일, 시간대 등 어느 레스토랑의 테이블 당 결제에 관련된 데이터가 들어있습니다. 요일별로 가장 높은 금액의 결제 내역을 출력하는 쿼리를 작성해주세요. 쿼리 결과에는 tips 테이블에 있는 모든 컬럼이 포함되어야 합니다.
A. '요일별' 최대 금액 내역을 출력해야 하므로, Total_bill 최대값을 조회하되 day 기준 group by가 진행되어야 한다. 즉, Where [조건] 에서, 조건 : total_bill 가 in( Max(total_bill) from tips(테이블명) group by day 라고 할 수 있다. 한번 다듬었으니까 바로 쿼리문 쓰기!
SELECT *
FROM tips
WHERE total_bill IN(SELECT MAX(total_bill) FROM tips GROUP BY day)
가지고 있는 데이터(금토일목)에 대해 Max(total_bill)와 결제자 정보가 출력됐다.
2. 레스토랑의 요일별 매출 요약 - https://solvesql.com/problems/sales-summary/
Q. tips 테이블에는 식사 금액, 팁, 결제자 성별, 요일, 시간대 등 어느 레스토랑의 테이블 당 결제에 관련된 데이터가 들어있습니다. 이 레스토랑의 요일별 매출액의 평균을 계산해주세요. 매출액 평균은 소수점 아래 셋째 자리에서 반올림하여 둘째 자리까지 표시되어야 합니다.
A. 반올림해서 2자리를 표현해야 하므로, round(매출액평균,2)가 될 것이고, 매출액 평균은 avg(매출액)으로 계산하면 됨. 추가적으로 '요일별' 이므로 1번과 마찬가지로 group by day 조건절을 추가한다. 그리고 원 데이터 = 테이블 당 결제에 관련된 데이터이므로 '쿼리문 속 쿼리문'을 통해 매출액 계산할 원데이터의 범위를 좁혀 준다.
select
round(avg(bill), 2)
from
(select day,sum(total_bill) bill
from
tips
group by day
)
끝!
SQL은 결과 쿼리가 참 깔끔해서 좋아 (?)
'코딩테스트 > SQL' 카테고리의 다른 글
[SolveSQL] 최고의 근무일을 찾아라, 지역별 주문의 특징 (0) | 2023.06.20 |
---|---|
[SolveSQL] 배송 예정일 예측 성공과 실패, 레스토랑의 대목 (0) | 2023.06.14 |
[SolveSQL]우리 플랫폼에 정착한 판매자1, 점검이 필요한 자전거 찾기 (2) | 2023.06.13 |
[SolveSQL] 첫 주문과 마지막 주문, 많이 주문한 테이블 찾기 (0) | 2023.06.12 |
[SolveSQL] 몇 분이서 오셨어요?, 일별 블로그 방문자 수 집계 (0) | 2023.06.12 |