Pivot doanh thu người dùng theo tháng
Tiếp theo, Eve cho biết các lãnh đạo cấp C thích bảng rộng hơn bảng dài vì dễ nhìn lướt hơn. Cô ấy đã chuẩn bị một báo cáo mẫu về doanh thu người dùng theo tháng, liệt kê doanh thu của 5 user ID đầu tiên từ tháng 6 đến tháng 8 năm 2018. Các lãnh đạo yêu cầu xoay (pivot) bảng theo tháng. Cô ấy đã chuyển nhiệm vụ đó cho bạn.
Hãy pivot truy vấn doanh thu người dùng theo tháng sao cho mỗi user ID là một hàng và mỗi tháng từ tháng 6 đến tháng 8 năm 2018 là một cột.
Bài tập này là một phần của khóa học
Phân tích dữ liệu kinh doanh bằng SQL
Hướng dẫn bài tập
- Bật
CROSSTAB()từtablefunc. - Khai báo các cột của bảng pivot mới: user ID và ba tháng đầu tiên hoạt động.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- 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;