開始使用免費開始

Common Table Expressions

你所協助的公司 Pissa 正在規劃一檔宣傳活動,需要你的專業意見。

這次活動要凸顯以訂單總量計算的最受歡迎披薩。

他們也考慮推出以店內最便宜披薩為主的超值餐。

你身為顧問型資料工程師的任務,就是同時找出這兩款披薩。

本練習屬於課程

Snowflake SQL 入門

檢視課程

練習說明

  • 建立一個名為 most_ordered 的 CTE,並將結果限制為 1 筆。
  • 再建立一個名為 cheapest_pizza 的 CTE,使用子查詢找出最低價格以篩選最便宜的披薩。
  • 完成查詢,從 most_ordered CTE 中選取 pizza_id 與別名為 metrictotal_qty
  • 同時從 cheapest_pizza CTE 納入 pizza_id 與別名為 metricprice。注意,請維持欄位順序。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

-- Create a CTE named most_ordered and limit the results 
___ ___ ___ (
    SELECT pizza_id, SUM(quantity) AS total_qty 
    FROM order_details GROUP BY pizza_id ORDER BY total_qty DESC
    ___
)
-- Create CTE cheapest_pizza where price is equal to min price from pizzas table
, ___ ___ (
    SELECT pizza_id, price
    FROM pizzas 
    WHERE price = (SELECT ___(price) FROM pizzas)
    LIMIT 1
)

SELECT pizza_id, 'Most Ordered' AS Description, total_qty AS metric
-- Select from the most_ordered CTE
FROM ___
UNION ALL
SELECT pizza_id, 'Cheapest' AS Description, price AS metric
-- Select from the cheapest_pizza CTE
FROM ___
編輯並執行程式碼