У меня есть таблица с ежемесячными продажами продавца автомобилей, который продает 3 разных бренда. Я хочу создать запрос, который возвращает таблицу года, месяца и марки наиболее продаваемого автомобиля с суммой, проданной за этот месяц.
Часть таблицы ниже:
+-----+--------+-----------+-------------+
|NYEAR| NMONTH | CAR_BRAND | AMOUNT_SOLD |
+-----+--------+-----------+-------------+
|2018 12 HONDA 15 |
|2018 12 TOYOTA 12 |
|2018 12 FORD 22 |
|2019 1 HONDA 14 |
|2019 1 TOYOTA 13 |
|2019 1 FORD 34 |
|2019 2 TOYOTA 10 |
|2019 2 FORD 19 |
|2019 2 HONDA 13 |
|2019 3 FORD 14 |
|2019 3 OYOTA 13 |
|2019 3 HONDA 15 |
|2019 4 HONDA 12 |
|2019 4 TOYOTA 14 |
|2019 4 FORD 11 |
|2019 5 FORD 11 |
|2019 5 HONDA 13 |
|2019 5 TOYOTA 10 |
+-----+--------+-----------+-------------+
Я могу получить максимальный ответ AMOUNT_SOLD в месяц, но не могу получить название магазина. Вот запрос, который я пробовал.
SELECT NYEAR, NMONTH, MAX(SALES_AMOUNT)
FROM MONTHLY_CAR_SALES
GROUP BY NYEAR, NMONTH;
Однако, когда я пытался добавить CAR_BRAND в выбор запроса:
SELECT NYEAR, NMONTH, CAR_BRAND, MAX(SALES_AMOUNT)
FROM MONTHLY_CAR_SALES
GROUP BY NYEAR, NMONTH;
Я получаю:
Код ошибки: 1055. Выражение № 3 списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец «USED_CAR_SALES.MONTHLY_CAR_SALES.CAR_BRAND», который функционально не зависит от столбцов в предложении GROUP BY;это несовместимо с sql_mode = only_full_group_by
Когда я пытаюсь добавить CAR_BRAND в предложение группировки, он возвращает ту же таблицу, что и выше, которая показывает каждый бренд за каждый месяц.
Стол, за которым я следую, выглядит так:
+-----+--------+-----------+-------------+
|NYEAR| NMONTH | CAR_BRAND | AMOUNT_SOLD |
+-----+--------+-----------+-------------+
|2018 12 FORD 22 |
|2019 1 FORD 34 |
|2019 2 FORD 19 |
|2019 3 HONDA 15 |
|2019 4 TOYOTA 14 |
|2019 5 HONDA 13 |
+-----+--------+-----------+-------------+