分组完之后,想分别统计下2013年,2014年,2015年注册人数。
除了下面对count(*)用case when还有没有其他办法?
select sum(case when jointime between '2014-1-1' and '2014-12-31 then 1 else 0),
sum(case when jointime between '2015-1-1' and '2015-12-31 then 1 else 0)
........... from users group by username
2 个解决方案
#1
union all
分别算每一年,然后union all 合并
2013年 xxx
2014年 xxx
2015年 xxxx
分别算每一年,然后union all 合并
2013年 xxx
2014年 xxx
2015年 xxxx
#2
select year(jointime) as 年份,count(1) as 注册用户数 from users group by year(jointime)
#1
union all
分别算每一年,然后union all 合并
2013年 xxx
2014年 xxx
2015年 xxxx
分别算每一年,然后union all 合并
2013年 xxx
2014年 xxx
2015年 xxxx
#2
select year(jointime) as 年份,count(1) as 注册用户数 from users group by year(jointime)