← К оглавлению занятия

📝 Задания

📁 Блок: SQL / MySQL / Оконные функции ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: задания

  1. Максимальная цена рядом с каждой строкой products.
  2. Процент отклонения цены продукта от максимальной.
  3. Количество продуктов в категории через окно.
  4. Разница standard_cost и среднего list_price.
  5. То же задание без оконной функции.
1

Задание 1. Максимальная цена для каждой строки

Из таблицы products выведите имя продукта, его list_price и максимальный list_price по всей таблице.

2

Задание 2. Процент отклонения от максимума

Используя предыдущий запрос, посчитайте разницу в процентах между ценой продукта и максимальной ценой.

3

Задание 3. Количество продуктов в категории

Посчитайте количество продуктов в каждой категории с помощью оконной функции. Подумайте, оптимально ли здесь использовать оконную функцию или лучше GROUP BY.

4

Задание 4. Разница себестоимости и средней цены

Найдите разницу между standard_cost продукта и средним list_price по всей таблице для каждой строки.

5

Задание 5. Тот же результат без оконной функции

Решите задание 4 без использования оконных функций. Подсказка: используйте CTE или JOIN с предварительно посчитанным средним.

6

Задание 6. Кумулятивная сумма заказов

Для таблицы orders выведите order_id, order_date, order_amount и кумулятивную сумму заказов по дате.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Для чего нужен GROUP BY?

Вопрос 2

Чем HAVING отличается от WHERE?

Вопрос 3

Чем оконная функция отличается от GROUP BY?

Вопрос 4

Для чего нужен OVER()?

Вопрос 5

Что делает SELECT?

Вопрос 6

Почему в SQL важен явный список столбцов?

Вопрос 7

Как лучше форматировать сложный SQL-запрос?