Lọc sớm
Pissa vừa nhờ bạn hỗ trợ tối ưu hiệu năng các truy vấn cơ sở dữ liệu. Họ nghi ngờ các truy vấn hiện tại chưa đủ hiệu quả và chạy quá lâu.
Mục tiêu là lấy các đơn hàng sau ngày 01/11/2015 và chỉ bao gồm các pizza thuộc danh mục 'Veggie'.
Hoàn thiện truy vấn SQL đã cho bằng cách áp dụng kỹ thuật lọc sớm.
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
- Hoàn thiện CTE
filtered_orders, chỉ lọc các đơn hàng sau2015-11-01. - Hoàn thiện CTE
filtered_pizza_type, chỉ lọc các pizza thuộc danh mục'Veggie'. - Truy xuất các bản ghi từ CTE
filtered_orders. - JOIN CTE
filtered_pizza_typedựa trên cộtpizza_type_idbằng mệnh đềON.
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.
WITH filtered_orders AS (
SELECT order_id, order_date
FROM orders
-- Filter records where order_date is greater than November 1, 2015
___
)
, filtered_pizza_type AS (
SELECT name, pizza_type_id
FROM pizza_type
-- Filter the pizzas which are in the Veggie category
___
)
SELECT fo.order_id, fo.order_date, fpt.name, od.quantity
-- Get the details from filtered_orders CTE
FROM ___ AS fo
JOIN order_details AS od ON fo.order_id = od.order_id
JOIN pizzas AS p ON od.pizza_id = p.pizza_id
-- JOIN the filtered_pizza_type CTE on pizza_type_id
___ ___ AS fpt ON p.pizza_type_id = ___.___