某表内容如下:
姓名     学校     通过状态(0为待定,1为通过,2为未通过)
st2      schoola      0
st1      schoola      2
st5      schoola      1
st7      schoolb      1
st3      schoolb      1
st9      schoolb      2输出的结果要如下:
学校     通过个数     未通过个数     待定个数
schoola    1            1             1
schoola    1            0             2
大家帮个忙,写条sql语句实现了

解决方案 »

  1.   


    select 学校,sum(待定) 待定个数 ,sum(通过) 通过个数,sum(未通过) 未通过个数 from (
    select
      学校,decode(通过状态,0,1,0) 待定,decode(通过状态,1,1,0) 通过,decode(通过状态,2,1,0) 未通过,
    from table
    )
    group by 学校
      

  2.   

    select school,sum(case when status=0 then 1 end) '待定人数',
                  sum(case when status=1 then 1 end) '通过人数',
                  sum(case when status=2 then 1 end) '待定人数'
     from tb group by school