有数据表Table,有字段 Debt(部门)、Duty(职务,值为高工、工程师、助工之一),表中有如下数据:
Debt(部门) Duty(职务)
设计室1 高工
设计室2 助工
设计室2 高工
设计室1 工程师
希望首先按Debt分组汇总记录数,同时在每一分组内,再按Duty分组汇总记录数,结果集是:
部门 总计 高工 工程师 助工
设计室1 2 1 1 0
设计室2 2 1 0 1
SQL语句是怎样的?
Debt(部门) Duty(职务)
设计室1 高工
设计室2 助工
设计室2 高工
设计室1 工程师
希望首先按Debt分组汇总记录数,同时在每一分组内,再按Duty分组汇总记录数,结果集是:
部门 总计 高工 工程师 助工
设计室1 2 1 1 0
设计室2 2 1 0 1
SQL语句是怎样的?
解决方案 »
- ORACLE9i优化请教高手,系统AIX ,IBM P550,ORACLE9i 大数量
- hql多个查询条件以or关联,当一个外键字段值为null时查不到数据
- 如何启动指定的监听程序和数据库实例?————在线等
- Oracle安装问题?????
- tns包写入程序失败
- 请问Oracle数据库是否有最大容量?是多少?
- 有几个传入参数,想当特定的几个参数不为null时,才更新其他几个参数,怎么办?
- 请问oracle8.0.5可不可以装在单机上呢
- 求救,锁表问题!!!急!
- 我把数据库从SQL SERVER2000中导入到ORACLE中,但是TEXT类型的字段总是报错。为什么?
- 如何得到group by后的记录数
- 存储过程小问题,关于嵌套查询,急!!!!在线等...
count(decode(Duty,'工程师',1,null)),
count(decode(Duty,'助工',1,null)) from table
group by debt
部门 总计 高工 工程师 助工
设计室1 2 0 0 0
设计室2 2 0 0 0
已测试!
create table test
(
Debt varchar(20),Duty varchar(20) )insert into test
select '设计室1','高工' from dual union
select '设计室1','助工' from dual union
select '设计室1','工程师' from dual union
select '设计室2','助工' from dual union
select '设计室2','高工' from dual
select * from testselect Debt,count(*),count(decode(Duty,'高工',1,null)),
count(decode(Duty,'工程师',1,null)),
count(decode(Duty,'助工',1,null)) from test
group by debt