开始使用免费开始使用

按餐厅计算利润

Delivr 正在与各家餐厅重新谈判合同。某家餐厅带来的利润越高,Delivr 愿意为其批量采购餐品支付的单价就越高。

业务拓展团队要求您计算每家餐厅带来的利润,以增强谈判筹码。

注意:在最终查询中,您不需要按餐厅执行 GROUP BY。您已经在 revenue 和 cost 这两个 CTE 中按餐厅完成了分组;接下来只需将它们彼此连接,就能在同一行得到每家餐厅的 revenue 和 cost。由于 revenue 和 cost 对于每家餐厅各占一行,因此无需进行额外分组。

本练习是课程的一部分

使用 SQL 分析业务数据

查看课程

练习说明

  • revenue CTE 中按餐厅计算 revenue。
  • cost CTE 中按餐厅计算 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;
编辑并运行代码