我有一个气象数据库,我希望在达到当天温度的最大值时检索日期和时间。
我可以获得温度的最大值,但返回的日期和时间是该日期的第一个条目。
更明确:
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
您可以看到返回的日期和时间不正确。
谢谢!
答案 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)