Отчет по отделам и месяцам

Сгруппируйте продажи по 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, не строкой формата ДД.ММ.ГГ.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее