Фільтрування даних за допомогою CTE
Один із найефективніших способів використання CTE — відфільтрувати дані всередині CTE, перш ніж використовувати їх далі в запиті. Це зменшує загальну вартість запиту, адже до фінального результату потрапляє менше даних. У цьому запиті ми знайдемо статуси тих замовлень, у яких є товари з ціною понад $150.
Ця вправа є частиною курсу
Вступ до BigQuery
Інструкції до вправи
- Створіть нове CTE
ordersдля замовлень із ціною понад $150, розгорнувши (UNNEST)order_items, щоб знайти стовпецьprice. - З'єднайте результати CTE з набором даних
ecomm_order_details, щоб визначити кількістьorder_statusі згрупувати їх,COUNT-підрахувавши замовлення в кожному статусі.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
-- 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