Filtrare i dati con le CTE
Uno dei modi più efficaci di usare una CTE è filtrare i dati direttamente nella CTE prima di riutilizzarli nella query. Questo riduce il costo complessivo portando meno dati nella query finale. Questa query ci aiuterà a trovare lo stato degli ordini che contengono articoli con prezzo superiore a $150.
Questo esercizio fa parte del corso
Introduzione a BigQuery
Istruzioni dell'esercizio
- Crea una nuova CTE
ordersper gli ordini con prezzo superiore a $150, facendo l'un-nest diorder_itemsper individuare la colonnaprice. - Fai la JOIN dei risultati della CTE con il dataset
ecomm_order_detailsper trovare i valori diorder_statuse aggregali facendo ilCOUNTdegli ordini in ciascuno stato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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