Сгруппируйте продажи по dept_id и MONTH(date), вычислите SUM(sale_amt) и COUNT(*). Поскольку год не важен, одинаковые месяцы разных лет объединяются.
Отчет по отделам и месяцам
Сгруппируйте продажи по dept_id и MONTH(date), вычислите SUM(sale_amt) и COUNT(*). Поскольку год не важен, одинаковые месяцы разных лет объединяются.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создать отчет по отделам и месяцам. Вывести dept_id, месяц, сумму и кол-во продаж. Год не важен. Взять месяц из date через MONTH(date).
+----+---------+------------+----------+
| id | dept_id | date | sale_amt |
+----+---------+------------+----------+
| 1 | 1 | 01.01.19 | 35 |
| 12 | 1 | 02.01.19 | 22 |
| 3 | 1 | 01.02.19 | 12 |
| 4 | 2 | 01.04.19 | 123 |
| 5 | 2 | 04.04.19 | 234 |
| 15 | 2 | 06.04.19 | 345 |
| 6 | 2 | 07.04.19 | 77 |
+----+---------+------------+----------+
Ответ
Сгруппируйте продажи по dept_id и MONTH(date), вычислите SUM(sale_amt) и COUNT(*). Поскольку год не важен, одинаковые месяцы разных лет объединяются.
Для MySQL, с условным именем таблицы sales:
SELECT dept_id, MONTH(`date`) AS month_number,
SUM(sale_amt) AS total_amount, COUNT(*) AS sales_count
FROM sales
GROUP BY dept_id, MONTH(`date`)
ORDER BY dept_id, month_number;
В примере: отдел 1/январь — 57 и 2 продажи; отдел 1/февраль — 12 и 1; отдел 2/апрель — 779 и 4. Поле date предполагается настоящим DATE, не строкой формата ДД.ММ.ГГ.