Решите дополнительные задачи на агрегацию и GROUP BY.
Сохраните скрипты в файл .sql.
🏠 Домашнее задание
На занятии не было отдельного задания из LMS — вся работа выполнялась в формате практических задач. Рекомендуется повторить их самостоятельно и решить несколько дополнительных.
База данных с доступом на чтение: hostname: ich-db.edu.itcareerhub.de, username: ich1, password: password.
📝 Повторение задач занятия
Найдите общее количество товаров в order_details.
Посчитайте уникальные заказы.
Соберите имена сотрудников через GROUP_CONCAT.
Выведите среднюю, минимальную и максимальную цену.
Сгруппируйте сотрудников по городам.
Сгруппируйте заказы по сумме количества.
🚀 Дополнительные задания
1
Задание 1
Посчитайте общую сумму по каждому заказу (unit_price * quantity) и выведите топ-5 заказов по сумме.
SELECT order_id,
SUM(unit_price * quantity) AS total_amount
FROM order_details
GROUP BY order_id
ORDER BY total_amount DESC
LIMIT 5;
2
Задание 2
Найдите среднюю цену товара в каждой категории. Если категории нет, создайте небольшую тестовую таблицу.
SELECT category, AVG(price) AS avg_price
FROM products
GROUP BY category;
3
Задание 3
Выведите количество сотрудников в каждой компании, но только те компании, где их больше 2. Используйте HAVING (тема следующего занятия).
SELECT company, COUNT(id) AS number_employees
FROM employees
GROUP BY company
HAVING COUNT(id) > 2;
✅ Проверка
Все базовые агрегаты отработаны на реальных таблицах.
GROUP BY корректно применяется к одному и нескольким столбцам.
Запросы с DISTINCT внутри агрегатов дают ожидаемый результат.