Zacznij terazZacznij za darmo

Filtrowanie danych za pomocą CTE

Jednym z najskuteczniejszych zastosowań CTE jest wstępne filtrowanie danych – zanim trafią do głównej części zapytania. Dzięki temu zapytanie przetwarza mniej danych i jest tańsze w wykonaniu. To zapytanie pozwoli nam sprawdzić statusy zamówień zawierających produkty w cenie powyżej 150 USD.

To ćwiczenie jest częścią kursu

Wprowadzenie do BigQuery

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz nowy CTE orders dla zamówień, w których cena przekracza 150 USD – użyj order_items z rozwinięciem (unnest), aby uzyskać dostęp do kolumny price.
  • Połącz wyniki CTE ze zbiorem danych ecomm_order_details, aby znaleźć liczbę wystąpień każdego order_status – zagreguj je, zliczając zamówienia w każdym statusie za pomocą COUNT.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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
Edytuj i uruchom kod