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

Обобщённые табличные выражения

Компания Pissa, которую вы консультируете, готовится к рекламной акции и рассчитывает на вашу помощь.

Цель кампании — выделить самую популярную пиццу по общему числу заказов.

Кроме того, компания рассматривает возможность введения экономичного комплекта с самой доступной пиццей в меню.

Ваша задача как дата-инженера-консультанта — определить обе эти пиццы.

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

Введение в Snowflake SQL

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

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

  • Создайте CTE с именем most_ordered и ограничьте результаты до 1 строки.
  • Создайте ещё один CTE с именем cheapest_pizza и отфильтруйте самую дешёвую пиццу с помощью подзапроса для нахождения минимальной цены.
  • Завершите запрос: выберите pizza_id и total_qty с псевдонимом metric из CTE most_ordered.
  • Добавьте pizza_id и price с псевдонимом metric из CTE cheapest_pizza. Обратите внимание: порядок столбцов должен быть сохранён.

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

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

-- Create a CTE named most_ordered and limit the results 
___ ___ ___ (
    SELECT pizza_id, SUM(quantity) AS total_qty 
    FROM order_details GROUP BY pizza_id ORDER BY total_qty DESC
    ___
)
-- Create CTE cheapest_pizza where price is equal to min price from pizzas table
, ___ ___ (
    SELECT pizza_id, price
    FROM pizzas 
    WHERE price = (SELECT ___(price) FROM pizzas)
    LIMIT 1
)

SELECT pizza_id, 'Most Ordered' AS Description, total_qty AS metric
-- Select from the most_ordered CTE
FROM ___
UNION ALL
SELECT pizza_id, 'Cheapest' AS Description, price AS metric
-- Select from the cheapest_pizza CTE
FROM ___
Редактировать и запускать код