Фильтрация данных с помощью CTE
Один из наиболее эффективных способов использования CTE — предварительная фильтрация данных внутри него, до применения в основном запросе. Это снижает общую стоимость запроса, поскольку в финальную часть поступает меньше данных. С помощью этого запроса мы найдём статус заказов, содержащих товары стоимостью свыше $150.
Это упражнение является частью курса
Введение в BigQuery
Инструкции к упражнению
- Создайте новый CTE
ordersдля заказов с ценой свыше $150, раскрывorder_itemsс помощью unnest, чтобы получить доступ к столбцу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