เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การ Pivot รายได้ผู้ใช้รายเดือน

Eve บอกว่าผู้บริหารระดับสูงชอบตารางแบบกว้างมากกว่าแบบยาว เพราะดูข้อมูลได้ง่ายกว่า เธอจัดทำรายงานตัวอย่างรายได้ผู้ใช้รายเดือน โดยแสดงรายได้ของ user ID 5 รายแรกตั้งแต่เดือนมิถุนายนถึงสิงหาคม 2018 และผู้บริหารต้องการให้ Pivot ตารางตามเดือน เธอจึงมอบหมายงานนี้ให้คุณ

ให้ Pivot คิวรีรายได้ผู้ใช้รายเดือน โดยให้ user ID เป็นแถว และแต่ละเดือนตั้งแต่มิถุนายนถึงสิงหาคม 2018 เป็นคอลัมน์

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์ข้อมูลธุรกิจด้วย SQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เปิดใช้งาน CROSSTAB() จาก tablefunc
  • ประกาศคอลัมน์ของตาราง Pivot ใหม่ ได้แก่ user ID และ 3 เดือนแรกของการดำเนินงาน

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- 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;
แก้ไขและรันโค้ด