一张学生信息表,表结构如下
ID   姓名    教师编号  是否上传
1    张三       001       0
2    李四       002       0
3    赵达       001       1
4    王五       001       0
5    韩二       002       0查询出结果如下
教师编号   总学生人数   上传过学生人数
001           3               1
002           2               0就是用GROUP BY  分组查询学生表,按照教师编号分组,分别求出教师所带学生的总数和上传过数据的学生人数 

解决方案 »

  1.   

    select
      教师编号,count(1) as  总学生人数,
      sum(case 是否上传 when 1 then 1 else 0 end) as 上传过学生人数
    from
      tb
    group by
      教师编号
      

  2.   

    select [教师编号],count(ID) as [总学生人数],
           sum(case when [是否上传] = 1 then 1 else 0 end) as [上传过学生人数]
    from table group by [教师编号]
      

  3.   


    select 教师编号,count(*) 总学生人数,sum(case when 是否上传=1 then 1 else 0 end) 上传过人数
    from tb
    group by 教师编号