我有一个表,里面有字段"班别" "姓名" "性别"
我要将这个表统计成
班别      总人数     男学生人数      女学生人数
001         56          30               26
002         50          30               20
这样的SQL语句应该怎样写??

解决方案 »

  1.   

    sqlserver:select count(*) 总人数,sum(case 性别 then '男' then 1 else 0 end) 男学生人数,sum(case 性别 then '女' then 1 else 0 end) 女学生人数 from 表
      

  2.   

    如果不是sqlserver不支持case:select count(*) 总人数,(select count(*) from 表 where 性别='男') 男学生人数,(select count(*) from 表 where 性别='女') 女学生人数 from 表
      

  3.   

    SQLServer: 我写错了!
    select count(*) 总人数,sum(case 性别 when '男' then 1 else 0 end) 男学生人数,sum(case 性别 when '女' then 1 else 0 end) 女学生人数 from 表SQLServer or Oracle:select count(*) 总人数,(select count(*) from 表 where 性别='男') 男学生人数,(select count(*) from 表 where 性别='女') 女学生人数 from 表
      

  4.   

    Access2Kselect count(*) 总人数,sum(IIf(性别='男',1,0)) 男学生人数,sum(IIf(性别='女',1,0)) 女学生人数 from 表
      

  5.   

    Access2000不能用上边的SQL
    而下边的产生这样的结果
    班别      总人数     男学生人数      女学生人数
    001         56          60               56
    002         50          60               56
    而且总是提示count(*) 总人数没的操作符()
      

  6.   

    select count(班别) ,sum(IIf(性别='男',1,0)),sum(IIf(性别='女',1,0)) from 表 group by 班别