ПочатиПочніть безкоштовно

Фільтрування даних за допомогою CTE

Один із найефективніших способів використання CTE — відфільтрувати дані всередині CTE, перш ніж використовувати їх далі в запиті. Це зменшує загальну вартість запиту, адже до фінального результату потрапляє менше даних. У цьому запиті ми знайдемо статуси тих замовлень, у яких є товари з ціною понад $150.

Ця вправа є частиною курсу

Вступ до BigQuery

Переглянути курс

Інструкції до вправи

  • Створіть нове CTE orders для замовлень із ціною понад $150, розгорнувши (UNNEST) order_items, щоб знайти стовпець price.
  • З'єднайте результати CTE з набором даних ecomm_order_details, щоб визначити кількість order_status і згрупувати їх, COUNT-підрахувавши замовлення в кожному статусі.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

-- 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
Редагувати та запускати код