월별 사용자 매출 피벗하기
다음으로, Eve는 최고경영진이 긴 형태보다 넓은 형태의 테이블을 더 선호한다고 알려줍니다. 그ほうが 한눈에 훑어보기 쉽기 때문이에요. 그녀는 2018년 6월부터 8월까지의 월별 사용자 매출 예시 보고서를 준비했고, 사용자 ID 상위 5명의 매출을 정리해 두었습니다. 경영진은 이 테이블을 월 기준으로 피벗하라고 요청했습니다. 이 작업을 이제 여러분에게 넘겼습니다.
월별 사용자 매출 쿼리를 피벗하여, 사용자 ID가 행이 되고 2018년 6월부터 8월까지 각 월이 열이 되도록 하세요.
이 연습은 강의의 일부입니다
SQL로 비즈니스 데이터 분석하기
연습 안내
tablefunc에서CROSSTAB()을 활성화하세요.- 새 피벗 테이블의 열을 선언하세요. 사용자 ID와 서비스 시작 첫 세 달을 포함합니다.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Import tablefunc
CREATE EXTENSION IF NOT EXISTS ___;
SELECT * FROM CROSSTAB($$
SELECT
user_id,
DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
SUM(meal_price * order_quantity) :: FLOAT AS revenue
FROM meals
JOIN orders ON meals.meal_id = orders.meal_id
WHERE user_id IN (0, 1, 2, 3, 4)
AND order_date < '2018-09-01'
GROUP BY user_id, delivr_month
ORDER BY user_id, delivr_month;
$$)
-- Select user ID and the months from June to August 2018
AS ct (___ INT,
___ FLOAT,
___ FLOAT,
___ FLOAT)
ORDER BY user_id ASC;