按餐厅计算利润
Delivr 正在与各家餐厅重新谈判合同。某家餐厅带来的利润越高,Delivr 愿意为其批量采购餐品支付的单价就越高。
业务拓展团队要求您计算每家餐厅带来的利润,以增强谈判筹码。
注意:在最终查询中,您不需要按餐厅执行 GROUP BY。您已经在 revenue 和 cost 这两个 CTE 中按餐厅完成了分组;接下来只需将它们彼此连接,就能在同一行得到每家餐厅的 revenue 和 cost。由于 revenue 和 cost 对于每家餐厅各占一行,因此无需进行额外分组。
本练习是课程的一部分
使用 SQL 分析业务数据
练习说明
- 在
revenueCTE 中按餐厅计算 revenue。 - 在
costCTE 中按餐厅计算 cost。 - 将两个 CTE 连接起来,并按餐厅计算利润。
交互式实操练习
通过完成这段示例代码来试试这个练习。
WITH revenue AS (
-- Calculate revenue per eatery
SELECT ___,
___ AS revenue
FROM meals
JOIN orders ON meals.meal_id = orders.meal_id
GROUP BY eatery),
cost AS (
-- Calculate cost per eatery
SELECT ___,
___ AS cost
FROM meals
JOIN stock ON meals.meal_id = stock.meal_id
GROUP BY eatery)
-- Calculate profit per eatery
SELECT ___,
___
FROM revenue
JOIN cost ON revenue.eatery = cost.eatery
ORDER BY profit DESC;