Здравствуйте. БД mysql
8.3.0. Структура:
id - int [AI]
player_count - int
timestamp - timestamp [CURRENT_TIMESTAMP, on update]
Каждые 30 минут добавляется новая строка с текущим значением
player_count и
timestamp соответственно.
Задача делать выборку с максимальным значением за период, например за месяц, и получать не только значение
player_count, но и
timestamp этого значения.
Далее объединять полученные значения и выводить график с максимальными значениями за неделю/месяц на протяжении большего периода (месяц, пол года, год и т.д.).
SELECT MAX(player_count) AS players_max, `timestamp` FROM steam_stats WHERE MONTH(`timestamp`) = 7 AND YEAR(`timestamp`) = 2024
Делая запрос выше получаю ошибку:
1140 - In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'db.steam_stats.timestamp'; this is incompatible with sql_mode=only_full_group_by
Если убрать
`timestamp` из SELECT, получаю нужное значение, но соответственно не знаю его
timestamp.
Как правильно сформировать SELECT и GROUP BY чтобы не отключать режим
sql_mode=only_full_group_by?