我有一张表以5分钟的间隔存储气象数据。
现在我需要按年份分组的总rainday结果如下:。
2010 100 raindays
2011 120 raindays
2013 90 raindays
这是我目前的查询:
SELECT date, SUM(rain) FROM $tableName GROUP BY date HAVING SUM(rain) > 0";
如预期的那样,这给了我以下结果:
2010-01-02 1.2 (mm)
2010-01-05 1.6 (mm)
2010-02-10 2.6 (mm)
我如何更改查询,按年份(日期)和计算天数分组?
感谢大家的帮助
PM
答案 0 :(得分:1)
您可以按年份(日期)进行分组,以按年份分组雨水。然后使用DATE(日期)函数计算可以在没有时间部分的情况下COUNT DISTINCT的天数。
SELECT YEAR(date), SUM(rain), COUNT(DISTINCT DATE(date)) days
FROM $tableName
WHERE rain>0
GROUP BY YEAR(date)
请参阅小提琴here。
答案 1 :(得分:0)
如果要查找每个组的最大元素
,以下查询可能会对您有所帮助select
e.date, e.rain
from
TableName e
join
(select
date, MAX(rain) MS
from
TableName
group by date
Having rain > 0) m ON e.date = M.date and e.rain = m.rain