On the journey of
[SolveSQL] 최고의 근무일을 찾아라, 지역별 주문의 특징 본문
1. 최고의 근무일을 찾아라 - https://solvesql.com/problems/best-working-day/
solvesql
solvesql.com
Q. Waiter's Tips 데이터셋에는 식사 금액, 팁, 결제자 성별, 결제 요일 등 레스토랑 손님들의 계산 정보가 들어있습니다. 이 레스토랑에 근무하는 서버는 팁을 많이 받을 수 있는 날 하루를 골라 근무하고 싶습니다.
요일별로 팁 총액을 집계하고 팁이 가장 많았던 요일과 그날의 팁 총액을 출력하는 쿼리를 작성해주세요.
결과 데이터는 아래 컬럼을 포함해야 합니다.
- day - 요일
- tip_daily - 요일 별 팁 총액
A. Limit 조건제어문은 반환된 결과의 행 개수(출력 개수)를 제한하기 위한 문법이다. 여기서는 '하루만' 근무하고 싶다고 했으니 가장 팁을 많이 주는 하루만 답으로 나오게끔, limit 1을 추가했다.
Select ~~
From ~~
Order by ~~ Where ~~
Limit 3 #select문으로 반환된 결과의 출력 개수 제한 : 3개 열만 출력한다
Limit 10,3 : 10행부터 3개 행만 출력한다
Answer
select day, sum(tip) as tip_daily
from tips
group by day
order by tip_daily desc
limit 1
그러면 결과가 아래와 같이 나온다.
토요일만 근무하시면 됩니다 ~
2. 지역별 주문의 특징 - https://solvesql.com/problems/characteristics-of-orders/
solvesql
solvesql.com
Q. US E-Commerce Records 2020 데이터셋은 미국 이커머스 웹사이트의 판매 데이터 입니다. records 테이블은 주문 번호, 주문 날짜, 주문 지역, 카테고리 등 주문의 상세 정보를 담고 있습니다. 이 데이터를 이용하여 미국의 각 지역별로 어떤 카테고리의 상품이 많이 판매되는지 알아보려고 합니다. region, category 별 주문량을 계산해 출력하는 쿼리를 작성해주세요.
결과 데이터 형식
결과 데이터는 아래와 같은 테이블 형태로 출력되어야 하고, Region 컬럼 기준 오름차순으로 정렬되어 있어야 합니다.
결과 데이터의 각 컬럼은 다음과 같은 의미를 갖습니다.
- Region - 주문 지역
- Furniture - 해당 지역 내 가구(’Furniture’) 주문 수
- Office Supplies - 해당 지역 내 오피스 물품(’Office Supplies’) 주문 수
- Technology - 해당 지역 내 전자기기(’Technology’) 주문 수
칼럼이 많기에 정신을..똑띠 차려야 한다 :) 또한, case를 통해 조건을 추가하고, order_id의 중복값이 있기 때문에 이를 제거하는 구문을 추가해 줘야 한다.
SELECT Region,
SUM(case when category = 'Furniture' then orders end) 'Furniture',
SUM(case when category = 'Office Supplies' then orders end) 'Office Supplies',
SUM(case when category = 'Technology' then orders end) 'Technology'
FROM (SELECT region Region, category, COUNT(DISTINCT order_id) orders
FROM records
GROUP BY region, category) records1
GROUP BY region
ORDER BY region;
case when ~~ 해서 카테고리별 조건을 추가하는 것이 많이 번거로운 문항이었다...
그래도 무사 출력 완 :-)
주말 좀전부터 이런저런 일로 정신없어서 며칠 쉬었더니 SQL 감 훅 떨어진게 느껴진다....다시 아자아자...
'코딩테스트 > SQL' 카테고리의 다른 글
[SolveSQL] 가구 판매의 비중이 높았던 날 찾기,버뮤다 삼각지대에 들어가버린 택배 찾기 (0) | 2023.06.21 |
---|---|
[SolveSQL] 멘토링 짝꿍 리스트, 작품이 없는 작가 찾기 (0) | 2023.06.20 |
[SolveSQL] 배송 예정일 예측 성공과 실패, 레스토랑의 대목 (0) | 2023.06.14 |
[SolveSQL] 레스토랑의 요일별 VIP, 레스토랑의 요일별 매출 요약 (1) | 2023.06.13 |
[SolveSQL]우리 플랫폼에 정착한 판매자1, 점검이 필요한 자전거 찾기 (2) | 2023.06.13 |