НачатьНачать бесплатно

Фильтрация данных с помощью CTE

Один из наиболее эффективных способов использования CTE — предварительная фильтрация данных внутри него, до применения в основном запросе. Это снижает общую стоимость запроса, поскольку в финальную часть поступает меньше данных. С помощью этого запроса мы найдём статус заказов, содержащих товары стоимостью свыше $150.

Это упражнение является частью курса

Введение в BigQuery

Посмотреть курс

Инструкции к упражнению

  • Создайте новый CTE orders для заказов с ценой свыше $150, раскрыв order_items с помощью unnest, чтобы получить доступ к столбцу 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
Редактировать и запускать код