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

Оптимизация запросов с помощью CTE

CTE также помогают оптимизировать запросы: они позволяют выполнить такие вычисления, как агрегации, до того как основной запрос начнёт работать с данными.

Например, вы хотите найти наибольшее количество платежей в зависимости от числа позиций в заказе. В этом упражнении вы увидите, как эффективно решить эту задачу с помощью CTE.

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

Введение в BigQuery

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

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

  • Добавьте нужные агрегатные функции в подзапрос и в основной запрос.
  • Используйте ARRAY_LENGTH, чтобы дважды обратиться к столбцу order_items в основном запросе и определить количество позиций в каждом заказе.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

WITH payments AS (
  SELECT
    -- Use the correct aggregate to find the highest number of payments
    ___(payment_sequential) AS num_payments,
    order_id
  FROM ecommerce.ecomm_payments 
  -- Group the results by order
  GROUP BY ___)
     
SELECT
  -- Add the correct function to find the length or number of order items
  ___(o.order_items) AS num_items,
  MAX(p.num_payments) AS max_payments
FROM ecommerce.ecomm_orders o
JOIN payments p
-- Add the correct keyword to join using the same column
___ (order_id)
-- Add the correct function to find the length or number of order items
GROUP BY ___(o.order_items)
Редактировать и запускать код