Common Table Expressions
你所協助的公司 Pissa 正在規劃一檔宣傳活動,需要你的專業意見。
這次活動要凸顯以訂單總量計算的最受歡迎披薩。
他們也考慮推出以店內最便宜披薩為主的超值餐。
你身為顧問型資料工程師的任務,就是同時找出這兩款披薩。
本練習屬於課程
Snowflake SQL 入門
練習說明
- 建立一個名為
most_ordered的 CTE,並將結果限制為1筆。 - 再建立一個名為
cheapest_pizza的 CTE,使用子查詢找出最低價格以篩選最便宜的披薩。 - 完成查詢,從
most_orderedCTE 中選取pizza_id與別名為metric的total_qty。 - 同時從
cheapest_pizzaCTE 納入pizza_id與別名為metric的price。注意,請維持欄位順序。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
-- 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 ___