MySQL - 选择最大值的日期和时间

时间:2017-11-20 19:07:47

标签: mysql datetime

我有一个气象数据库,我希望在达到当天温度的最大值时检索日期和时间。

我可以获得温度的最大值,但返回的日期和时间是该日期的第一个条目。

更明确:

DATE(DateTime)|DateTime           |TempOutCur
    2017-11-19|2017-11-19 00:01:19|6.7
    2017-11-19|2017-11-19 00:06:22|6.7
    2017-11-19|2017-11-19 00:11:25|6.7
    2017-11-19|2017-11-19 00:16:28|6.7
    ................
    2017-11-19|2017-11-19 10:50:32|10.3 (this is max of the day)
    ................

查询

SELECT DATE(DateTime), DateTime, MAX(TempOutCur) 
FROM meteo_database GROUP BY DATE(DateTime)

正在回归:

DATE(DateTime)|DateTime           |MAX(TempOutCur)
    2017-11-19|2017-11-19 00:01:19|10.3

您可以看到返回的日期和时间不正确。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用带有max temp的子查询的连接

select DATE(m.DateTime), m.DateTime , m.TempOutCur
from meteo_database m
INNER JOIN  (
    SELECT DATE(DateTime) my_date, MAX(TempOutCur) max_temp
    FROM meteo_database 
    GROUP BY DATE(DateTime)
) T on T.my_date = DATE(m.DateTime) AND T.max_temp = m.TempOutCur 

答案 1 :(得分:0)

一种解决方案是在WHERE子句中指定聚合

SELECT DATE(DateTime), DateTime, TempOutCur
FROM meteo_database
WHERE TempOutCur = (SELECT MAX(TempOutCur) FROM meteo_database)