求助sqlserver如何实现同一个表中多个count查询并且分组

qin1826681768 2012-12-27 09:21:51
表结构如下:

周次 学号 迟到 旷课 请假 早退

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

2 0 0 3 0

3 0 1 0 0



求解啊, 谢谢
...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Irise_liu 2012-12-27
  • 打赏
  • 举报
回复
select t1.周次, t1.迟到次数, t2.旷课次数, t3.请假次数, t4.早退次数 form (select 周次, count(迟到) as 迟到次数 from tb where 迟到 ='true')t1 join (select 周次, count(旷课) as 旷课次数 from tb where 旷课 ='true')t2 on t1.周次 = t2.周次 join (select 周次, count(请假) as 请假次数 from tb where 请假 ='true')t3 on t1.周次 = t3.周次 join (select 周次, count(早退) as 早退次数 from tb where 早退 ='true')t4 on t1.周次 = t4.周次 **********如果看着有点晕,可以把t1、t2等sql语句提出来执行下,再看整体语句
「已注销」 2012-12-27
  • 打赏
  • 举报
回复
with tb(a,b,c,d,e,f) as (select'1','001','true','false','false','false' union all select '1','009','false','true','false','false' union all select '1','011','true','false','false','false' union all select '1','021','true','false','false','false' union all select '2','002','false','false','false','true' union all select '2','012','false','false','false','true' union all select '2','032','false','false','false','true' union all select '3','004','false','true','false','false' ) select a 周次,count(case when c='true' then 1 else null end) 迟到人数, count(case when d='true' then 1 else null end) 旷课人数, count(case when e='true' then 1 else null end) 早退人数, count(case when f='true' then 1 else null end) 请假人数 from tb group by a
翔教授 2012-12-27
  • 打赏
  • 举报
回复
select 周次,sum(迟到) as 迟到人数,sum(旷课) as 旷课人数... from table1 group by 周次

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧