Я, кажется, помню, как это работает в Oracle, но я не могу понять, как правильно это сделать в MySQL.MySQL GROUP BY DateTime with Aggregate Function
Вот мой запрос:
SELECT DateTimeStamp, MAX(Value) FROM t1
GROUP BY YEAR(DateTimeStamp), MONTH(DateTimeStamp), DAY(DateTimeStamp);
Запуск этого дает результаты, как:
DateTimeStamp Value
2015-09-09 00:00:29 100
2015-09-10 00:00:05 58
2015-09-11 00:00:57 62
2015-09-12 00:00:49 69
2015-09-13 00:00:43 97
Но я ожидал, что это выглядит так, где DateTimeStamps совпадают со значениями:
DateTimeStamp Value
2015-09-09 03:28:29 100
2015-09-10 03:29:05 58
2015-09-11 03:31:57 62
2015-09-12 03:30:49 69
2015-09-13 03:28:43 97
Выбираются правильные максимальные значения, но соответствующие значения DateTimeStamps для tho se максимальные значения нет. Вместо этого, похоже, что первое значение DateTimeStamp для каждого дня выбирается. Как я могу изменить свой запрос, чтобы отобразить соответствующие DateTimeStamps?
Вы пробовали выбрать MAX (DateTimeStamp)? –
Да - это просто выбор максимального значения DateTimeStamp за каждый день. –
_ «Строка, удерживающая максимум определенной колонки» _, можно найти в [руководстве] (https://dev.mysql.com/doc/refman/5.0/en/example-maximum-row.html) – vhu