Kom igångKom igång gratis

Filtrera data med CTE:er

Ett av de mest effektiva sätten att använda en CTE är att filtrera datan i CTE:n innan du använder den senare i frågan. Det minskar den totala kostnaden för frågan eftersom mindre data hämtas in i den slutliga frågan. Den här frågan hjälper oss att hitta orderstatusen för beställningar med artiklar som kostar mer än 150 dollar.

Den här övningen är en del av kursen

Introduktion till BigQuery

Visa kurs

Övningsinstruktioner

  • Skapa en ny CTE orders för beställningar med ett pris över 150 dollar och unnesta order_items för att hitta kolumnen price.
  • Joina resultaten från CTE:n med datamängden ecomm_order_details för att hitta antalet order_status och aggregera dem genom att COUNTa beställningarna i varje status.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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
Redigera och kör kod