例如A表:
datetime maxtemp mintemp
1952-1-1 19 10.2
1952-1-2 18.5 9.7
...
2009-10-20 22.1 11.3如何根据当天日期查询历史上的今天的最高温度和最低温度? 譬如今天是10月20日,就自动查询到历史上的10月20日的最低温度多少度,发生在几年? 最高温度多少度,发生在几年:历史上今天:
最低温度 最低温度出现年份 最高温度 最高温度出现年份
17.1 1963 27 2006
datetime maxtemp mintemp
1952-1-1 19 10.2
1952-1-2 18.5 9.7
...
2009-10-20 22.1 11.3如何根据当天日期查询历史上的今天的最高温度和最低温度? 譬如今天是10月20日,就自动查询到历史上的10月20日的最低温度多少度,发生在几年? 最高温度多少度,发生在几年:历史上今天:
最低温度 最低温度出现年份 最高温度 最高温度出现年份
17.1 1963 27 2006
from
(SELECT DATE_FORMAT(CURDATE(),'%m-%d'),max(maxtemp) as ma,min(mintemp) as mi
from tt group by DATE_FORMAT(CURDATE(),'%m-%d')) a
inner join tt b on b.mintemp=a.mi
inner join tt c on a.ma=c.maxtemp
那你找相应函数替换上面的写法就可以了
总体思路是不变的:先聚合然后再用内联接
1952-1-1 19 10.2
1952-1-2 18.5 9.7
...
2009-10-20 22.1 11.3
-----------------------------
select datatime,
(select max(maxtemp) from t where t.datatime = tt.datetime ) as max_temp,
(select min(mintemp) from t where t.datatime = tt.datetime ) as min_temp,from t tt;