Допустим, у меня есть таблица MyTable со столбцами Id, NumericValue и UTCTimestamp. Я пытаюсь сгруппировать результаты моей таблицы MyTable по часам их метки времени и вернуть максимальное значение NumericValue для каждой группы с соответствующей меткой времени, а также минимальное значение NumericValue для каждой группы с соответствующим значением метки времени.
На данный момент я могу выполнить первую часть своей проблемы с помощью следующего запроса:
SELECT
HOUR(t.UTCTimestamp) AS `Hour`,
t.NumericValue AS MaximumValue,
t.UTCTimestamp AS MaximumValueTime
FROM MyTable t
INNER JOIN (
SELECT HOUR(t2.UTCTimestamp) AS `Hour`, MAX(t2.NumericValue) AS NumericValue
FROM MyTable t2
GROUP BY HOUR(t2.UTCTimestamp)
) maxNumericValue ON HOUR(t.UTCTimestamp) = maxNumericValue.`Hour` AND t.NumericValue = maxNumericValue.NumericValue
GROUP BY HOUR(t.UTCTimestamp);
Что было вдохновлено этим ответом .
Вот MVCE .
Как я могу также показать минимальное значение для каждой группы, а также временную метку, связанную с ней?