Gegevens filteren met CTE's
Een van de meest effectieve manieren om een CTE te gebruiken, is je gegevens in de CTE filteren voordat je ze later in de query gebruikt. Zo verlaag je de totale kosten van de query, omdat er minder data in de uiteindelijke query terechtkomt. Met deze query vinden we de orderstatus van bestellingen met items waarvan de prijs hoger is dan $150.
Deze oefening maakt deel uit van de cursus
Introductie tot BigQuery
Oefeninstructies
- Maak een nieuwe CTE
ordersvoor bestellingen met een prijs boven $150, en unnestorder_itemsom de kolompricete vinden. - Join de resultaten van de CTE met de gegevensset
ecomm_order_detailsom het aantalorder_statuste vinden en ze te aggregeren door de bestellingen in elke status teCOUNTen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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