Mysql 如何获得一个季节的记录数
我的表的字段是id、name、date\u confirmyyyy-mm-dd h:i:s。 我想在夏季或冬季或……确认记录的数量。 结果例如: 18 | 2015年夏季 17 | 2015年秋季 0 | 2015年冬季 1 | 2016年春季 如何按列对此进行分组Mysql 如何获得一个季节的记录数,mysql,sql,database,Mysql,Sql,Database,我的表的字段是id、name、date\u confirmyyyy-mm-dd h:i:s。 我想在夏季或冬季或……确认记录的数量。 结果例如: 18 | 2015年夏季 17 | 2015年秋季 0 | 2015年冬季 1 | 2016年春季 如何按列对此进行分组 select count(id) from yourTable where date(date_confirm) between date(seasonBegin) and date(seasonEnd) ; 你可以将其放
select count(id)
from yourTable
where
date(date_confirm) between date(seasonBegin) and date(seasonEnd)
;
你可以将其放入程序主体中,然后根据你的应用程序如何定义季节,通过你正在寻找的季节的开始和结束。我选择使用id字段,因为它是唯一一个我可以假定不为null的字段
select count(1) ,name
from yourtable
group by name
只要使用您感兴趣的任何季节的开始和结束日期,继续遵循这种模式即可。这是mysql还是sql server?您已标记这两个都是mysql。请提供一些示例数据以及每个季节的开始和结束日期。请将groupby指定给季节名称和年份。这是不正确的。我希望在一个查询中获得结果。也许您应该编辑您的问题以使用单词and,而不是or
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