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

🏠 Домашнее задание

⚡ Кратко: домашнее задание

  1. Повторите все задания занятия на учебной базе.
  2. Решите дополнительные задачи на агрегацию и GROUP BY.
  3. Сохраните скрипты в файл .sql.

🏠 Домашнее задание

На занятии не было отдельного задания из LMS — вся работа выполнялась в формате практических задач. Рекомендуется повторить их самостоятельно и решить несколько дополнительных.

База данных с доступом на чтение: hostname: ich-db.edu.itcareerhub.de, username: ich1, password: password.

📝 Повторение задач занятия

  1. Найдите общее количество товаров в order_details.
  2. Посчитайте уникальные заказы.
  3. Соберите имена сотрудников через GROUP_CONCAT.
  4. Выведите среднюю, минимальную и максимальную цену.
  5. Сгруппируйте сотрудников по городам.
  6. Сгруппируйте заказы по сумме количества.

🚀 Дополнительные задания

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;

✅ Проверка

  1. Все базовые агрегаты отработаны на реальных таблицах.
  2. GROUP BY корректно применяется к одному и нескольким столбцам.
  3. Запросы с DISTINCT внутри агрегатов дают ожидаемый результат.
  4. Скрипты сохранены в файл lesson_17.sql.