where子句在不同年份有两个月

时间:2018-02-16 12:35:46

标签: mysql sql database datetime where-clause

我希望按年份指定的年份指定季节中选择值。季节如下: 12月(前一年),1月,2月:冬季, 三月,四月,五月:春天, 六月,七月,八月:夏天, 九月,十月,十一月:秋天

如果我想按年份分组,我对春,夏,秋的查询如下:

select avg(value) from table where month(date) between 3 and 5 group by year(date);

但是我不知道如何在冬天取得这样的结果,例如,12月是2017年,1月和2月是2018年。 按年分组非常重要。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

使用in

select year(date), avg(value)
from table
where month(date) in (12, 1, 2) 
group by year(date);

如果您希望这些月份是连续的"所以12月,1月和2月都在同一年,然后在group by添加一个月:

select year(date + interval 1 month), avg(value)
from table
where month(date) in (12, 1, 2) 
group by year(date + interval 1 month);