728x90
문제
Brazilian E-Commerce Public Dataset by Olist 데이터셋은 브라질의 이커머스 웹사이트인 Olist Store의 판매 데이터 입니다.
그 중 olist_orders_dataset 테이블에는 주문 ID, 고객 ID, 주문 상태, 구매 시각 등 주문 내역 데이터가 들어있습니다.
olist_order_payments_dataset 테이블에는 주문 ID, 결제 방법, 결제 금액 등 각 주문의 결제와 관련된 정보가 저장되어 있습니다.
두 테이블을 이용해 2018년 1월 1일 이후 쇼핑몰의 일일 매출액을 계산하는 쿼리를 작성해주세요.
주문 각각에 대해 매출이 일어나는 시점은 olist_orders_dataset 테이블의 order_purchase_timestamp 컬럼에 기록되고,
주문 금액은 olist_order_payments_dataset 테이블의 payment_value 컬럼에 기록됩니다.
쿼리 결과는 아래 두 컬럼을 포함해야 하고, 매출 날짜 기준으로 오름차순 정렬되어 있어야 합니다.
매출액은 반올림 해 소수점 둘째자리까지 출력해주세요.
dt - 매출 날짜 (예: 2018-01-01)
revenue_daily - 해당 날짜의 매출액
https://solvesql.com/problems/olist-daily-revenue/
문제 풀이
SELECT DATE(A.order_purchase_timestamp) AS dt, -- 구매 날짜만 추출
ROUND(SUM(B.payment_value),2) AS revenue_daily -- 일자별 총 결제 금액을 소수점 둘째자리까지 출력
FROM olist_orders_dataset AS A
INNER JOIN olist_order_payments_dataset AS B
ON A.order_id = B.order_id -- 두 테이블을 order_id 열을 기준으로 join
WHERE dt >= '2018-01-01' -- dt 열이 2018-01-01 이후인 열만 선택
GROUP BY dt
ORDER BY dt;
SQL을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90