IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una nuova CTE orders per gli ordini con prezzo superiore a $150, facendo l'un-nest di order_items per individuare la colonna price.
  • Fai la JOIN dei risultati della CTE con il dataset ecomm_order_details per trovare i valori di order_status e aggregali facendo il COUNT degli 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
Modifica ed esegui il codice