数据表类似如下:地区 状态 人数
--------------------------
江苏 未通过 2112
广东 未通过 3324
广东 通过 23
北京 未通过 2561
北京 通过 152
四川 未通过 672
湖南 未通过 1231要把它查询为如下形式的结果:地区 总数 通过 未通过
-------------------------------------
江苏 2112 0 2112
广东 5624 23 3324
北京 4081 152 2561
四川 672 0 672
湖南 1231 0 1231请问SQL应该怎么写呀??
--------------------------
江苏 未通过 2112
广东 未通过 3324
广东 通过 23
北京 未通过 2561
北京 通过 152
四川 未通过 672
湖南 未通过 1231要把它查询为如下形式的结果:地区 总数 通过 未通过
-------------------------------------
江苏 2112 0 2112
广东 5624 23 3324
北京 4081 152 2561
四川 672 0 672
湖南 1231 0 1231请问SQL应该怎么写呀??
解决方案 »
- 求助JAVAWEB高手
- *************************觸發器問題************************
- Oracle8.0.5(for nt)有没有和MSSQL2000类似的显示预定的执行计划(查询成本)?
- oracle备份问题,大虾给看看
- 100分求救,请问客户端打包
- oracle 是否有参数可以限制连入的 connection 数量
- Access 区人太少,请教修改Access 一个表,为其增加一个字段的Dao 函数是什么?
- 300分:统计分析问题请教!!
- 求一个sql语句。
- 十万火急,在线等待关于oracle的oci的资料
- ORA-00376:此时无法读数据文件 5 ORA-01110:数据文件5:‘D:\DISK2\DAN\ORADATA\EXAMPLE01.DBF'".
- 请教各位大锅--oracle 回收站问题
sum(人数) 总数,
sum(case when 状态 = '通过' then 人数 else 0 end) 通过,
sum(case when 状态 = '未通过' then 人数 else 0 end) 未通过
from tb group by 地区
sum(人数) 总数,
sum(case when 状态 = '通过' then 人数 else 0 end) 通过,
sum(case when 状态 = '未通过' then 人数 else 0 end) 未通过
from tb group by 地区
select 地区,
sum(人数) 总数,
sum(decode(状态,'通过',人数,0)) 通过,
sum(decode(状态,'未通过',人数,0)) 未通过
from tb group by 地区
create table test1(id number(5),地区 varchar2(20),状态 varchar2(10),人数 number(10));
insert into test1 values(1,'江苏','未通过',2112);
insert into test1 values(2,'广东','未通过',3324);
insert into test1 values(3,'广东','通过',23);
insert into test1 values(4,'北京','未通过',2561);
insert into test1 values(5,'北京','通过',152);
insert into test1 values(6,'四川','未通过',672);
insert into test1 values(7,'湖南','未通过',1231);select a.地区,
sum(a.人数) 总数,
sum(decode(a.状态,'通过',a.人数,0)) 通过,
sum(decode(a.状态,'未通过',a.人数,0)) 未通过
from test1 a
group by a.地区 地区 总数 通过 未通过
----------------------------------------
1 北京 2713 152 2561
2 广东 3347 23 3324
3 湖南 1231 0 1231
4 江苏 2112 0 2112
5 四川 672 0 672