Lọc dữ liệu với CTE
Một cách dùng CTE hiệu quả là lọc dữ liệu ngay trong CTE trước khi dùng tiếp ở phần sau của truy vấn. Cách này giúp giảm chi phí tổng thể vì đưa ít dữ liệu hơn vào truy vấn cuối. Truy vấn này sẽ giúp bạn tìm trạng thái của những đơn hàng có mặt hàng với giá trên $150.
Bài tập này là một phần của khóa học
Giới thiệu về BigQuery
Hướng dẫn bài tập
- Tạo một CTE mới
orderscho các đơn hàng có giá trên $150, un-nestingorder_itemsđể tìm cộtprice. - JOIN kết quả của CTE với tập dữ liệu
ecomm_order_detailsđể tìm số lượngorder_statusvà tổng hợp chúng bằng cáchCOUNTsố đơn hàng trong mỗi trạng thái.
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.
-- Add the correct items to finish our filtered CTE
-- Create a new CTE with the name orders
WITH ___ AS (
SELECT order_id
-- Add the correct column for the order item details
FROM ecommerce.ecomm_orders, UNNEST(___) items
-- Fill in the correct column for the item price
WHERE items.___ > 150
)
SELECT
-- Aggregate to find the total number of orders
___(order_id),
-- Add the column for the status of the order
___
FROM ecommerce.ecomm_order_details od
JOIN orders o USING (order_id)
GROUP BY order_status