Обобщённые табличные выражения
Компания Pissa, которую вы консультируете, готовится к рекламной акции и рассчитывает на вашу помощь.
Цель кампании — выделить самую популярную пиццу по общему числу заказов.
Кроме того, компания рассматривает возможность введения экономичного комплекта с самой доступной пиццей в меню.
Ваша задача как дата-инженера-консультанта — определить обе эти пиццы.
Это упражнение является частью курса
Введение в Snowflake SQL
Инструкции к упражнению
- Создайте CTE с именем
most_orderedи ограничьте результаты до1строки. - Создайте ещё один CTE с именем
cheapest_pizzaи отфильтруйте самую дешёвую пиццу с помощью подзапроса для нахождения минимальной цены. - Завершите запрос: выберите
pizza_idиtotal_qtyс псевдонимомmetricиз CTEmost_ordered. - Добавьте
pizza_idиpriceс псевдонимомmetricиз CTEcheapest_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 ___