sqlserver如何实现同一个表中多个count查询并且分组并且统计总数
表结构如下:
周次 学号 迟到 旷课 请假 早退
1 001 true false false false
1 009 false true false false
1 011 true false false false
1 021 true false false false
2 002 false false false true
2 012 false false false true
2 032 false false false true
3 004 false true false false
求解怎么用count统计每周迟到旷课早退请假的人数并且和group by 按周次进行分组,生成如下效果的表:
周次 迟到人数 旷课人数 早退人数 请假人数 总计
1 3 1 0 0 4
2 0 0 3 0 3
3 0 1 0 0 1
求解啊, 谢谢
[解决办法]
select 周次,
sum(case when 迟到='true' then 1 else 0 end),
sum(case when 旷课='true' then 1 else 0 end),
sum(case when 早退='true' then 1 else 0 end)
...
总计=sum(case when 迟到='true' then 1 else 0 end)+sum(case when 旷课='true' then 1 else 0 end)+...
from tb group by 周次
[解决办法]
select
[周次],
[迟到]=sum(case when [迟到]='true' then 1 else 0 end),
[旷课]=sum(case when [旷课]='true' then 1 else 0 end),
[请假]=sum(case when [请假]='true' then 1 else 0 end),
[早退]=sum(case when [早退]='true' then 1 else 0 end)
from [TB]
GROUP BY [周次]