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
Övningsinstruktioner
- Skapa en ny CTE
ordersför beställningar med ett pris över 150 dollar och unnestaorder_itemsför att hitta kolumnenprice. - Joina resultaten från CTE:n med datamängden
ecomm_order_detailsför att hitta antaletorder_statusoch aggregera dem genom attCOUNTa 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