กำไรรายเดือน
หลังจากที่ Alice จัดลำดับความสำคัญและทำข้อตกลงกับร้านอาหารต่างๆ โดยดูจากกำไรรวมแล้ว เธอต้องการติดตามกำไรของ Delivr เป็นรายเดือนเพื่อประเมินผลการดำเนินงาน คุณมีหน้าที่ช่วยในส่วนนี้
โจทย์นี้มี CTE สองตัวให้พร้อม ตัวแรกเก็บข้อมูลรายได้ และตัวที่สองเก็บข้อมูลต้นทุน เพื่อนำทั้งสองมาใช้ในคิวรีเดียวกัน จึงมีการ JOIN CTE ทั้งสองในคิวรีสุดท้าย จากนั้นนำสูตร Profit = Revenue - Cost มาคำนวณกำไรรายเดือน
อย่าลืมว่ารายได้คือผลรวมของราคาแต่ละเมนูคูณจำนวนที่สั่ง และต้นทุนคือผลรวมของราคาต้นทุนแต่ละเมนูคูณจำนวนที่จัดซื้อ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์ข้อมูลธุรกิจด้วย SQL
คำแนะนำการฝึกหัด
- คำนวณรายได้รายเดือนใน CTE ชื่อ
revenue - คำนวณต้นทุนรายเดือนใน CTE ชื่อ
cost - JOIN CTE ทั้งสองเข้าด้วยกัน แล้วคำนวณกำไรรายเดือน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Set up the revenue CTE
WITH revenue AS (
SELECT
DATE_TRUNC('month', order_date) :: DATE AS delivr_month,
___ AS revenue
FROM meals
JOIN orders ON meals.meal_id = orders.meal_id
GROUP BY delivr_month),
-- Set up the cost CTE
cost AS (
SELECT
DATE_TRUNC('month', stocking_date) :: DATE AS delivr_month,
___ AS cost
FROM meals
JOIN stock ON meals.meal_id = stock.meal_id
GROUP BY delivr_month)
-- Calculate profit by joining the CTEs
SELECT
___,
___
FROM revenue
JOIN cost ON revenue.delivr_month = cost.delivr_month
ORDER BY revenue.delivr_month ASC;