Biểu thức bảng chung (CTE)
Pissa, công ty mà bạn đang tư vấn, đang lên kế hoạch cho một chiến dịch khuyến mãi và cần chuyên môn của bạn.
Chiến dịch nhằm làm nổi bật loại pizza phổ biến nhất dựa trên tổng số đơn hàng.
Họ cũng đang cân nhắc ra mắt một suất ăn giá trị với loại pizza rẻ nhất.
Nhiệm vụ của bạn với vai trò kỹ sư dữ liệu tư vấn là xác định cả hai loại pizza này.
Bài tập này là một phần của khóa học
Nhập môn Snowflake SQL
Hướng dẫn bài tập
- Tạo một CTE tên
most_orderedvà giới hạn kết quả ở1. - Tạo một CTE khác tên
cheapest_pizzavà lọc ra chiếc pizza rẻ nhất bằng cách dùng một truy vấn con để tìm giá nhỏ nhất. - Hoàn thiện truy vấn để chọn
pizza_idvàtotal_qtyđặt bí danh làmetrictừ CTEmost_ordered. - Bao gồm
pizza_idvàpriceđặt bí danh làmetrictừ CTEcheapest_pizza. Lưu ý, giữ nguyên thứ tự các cột.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
-- 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 ___