日期:2014-05-17  浏览次数:20836 次

分组汇总问题
有数据表Table,有字段   Debt(部门)、Duty(职务,值为高工、工程师、助工之一),表中有如下数据:
          Debt(部门)     Duty(职务)
          设计室1             高工
          设计室2             助工
          设计室2             高工
          设计室1             工程师  
希望首先按Debt分组汇总记录数,同时在每一分组内,再按Duty分组汇总记录数,结果集是:
            部门               总计       高工         工程师         助工
          设计室1             2             1                 1                 0  
          设计室2             2             1                 0                 1    
    SQL语句是怎样的?  


------解决方案--------------------
select Debt,count(*),count(decode(Duty, '高工 ',1,null)),
count(decode(Duty, '工程师 ',1,null)),
count(decode(Duty, '助工 ',1,null)) from table
group by debt