Filtrowanie danych za pomocą CTE
Jednym z najskuteczniejszych zastosowań CTE jest wstępne filtrowanie danych – zanim trafią do głównej części zapytania. Dzięki temu zapytanie przetwarza mniej danych i jest tańsze w wykonaniu. To zapytanie pozwoli nam sprawdzić statusy zamówień zawierających produkty w cenie powyżej 150 USD.
To ćwiczenie jest częścią kursu
Wprowadzenie do BigQuery
Instrukcje do ćwiczenia
- Utwórz nowy CTE
ordersdla zamówień, w których cena przekracza 150 USD – użyjorder_itemsz rozwinięciem (unnest), aby uzyskać dostęp do kolumnyprice. - Połącz wyniki CTE ze zbiorem danych
ecomm_order_details, aby znaleźć liczbę wystąpień każdegoorder_status– zagreguj je, zliczając zamówienia w każdym statusie za pomocąCOUNT.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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