我的表格字段为id
,name
,date_confirm(yyyy-mm-dd h:i:s)
。
我希望获得在夏季或冬季确认的记录数量或......
结果例如:
18|summer 2015
17|Autumn 2015
0|winter 2015
1|spring 2016
如何按列分组?
答案 0 :(得分:0)
select count(id)
from yourTable
where
date(date_confirm) between date(seasonBegin) and date(seasonEnd)
;
您可以将其放入程序正文中,然后根据您的应用定义季节的方式传递您正在寻找的季节的开始和结束。我选择依靠id字段,因为它是唯一一个我可以假设不为空的字段。
答案 1 :(得分:0)
select count(1) ,name
from yourtable
group by name
答案 2 :(得分:0)
SELECT
SUM(CASE WHEN date_confirm BETWEEN(begindate, enddate)THEN 1 ELSE 0 END) AS Confirmed_Summer2015
,SUM(CASE WHEN date_confirm BETWEEN(begindate, enddate)THEN 1 ELSE 0 END) AS Confirmed_Autumn2015
--Keep adding more seasons if needed
FROM TableName
只需使用您感兴趣的任何季节的开始和结束日期来遵循该模式。