select A,nvl(count(B),0) as num0 from table
where B = 0 group by A我想他count没有时返回0,还要显示分组字段.应该如何写结果如:
分组字段 计数
Name1 2
Name2 5
Name3 0
where B = 0 group by A我想他count没有时返回0,还要显示分组字段.应该如何写结果如:
分组字段 计数
Name1 2
Name2 5
Name3 0
解决方案 »
- 关于oracle存储过程防止sql注入的问题。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 新手求一每月班级人数统计的sql
- conn /as sysdba 命令出错了
- 求一个SQL语句~50分笑纳!
- 建立一个过程,提示出错,请看图
- oracle RAC 里指的RAW设备是什么?
- 怎么 drop type 啊----最后50分了
- 关于INSTR()的问题!!!!!!!!!!!!!!!
- 求救:怎样用SQL判断blob是否为空
- 特急求救,关于DBA如何知道每种操作系统I/O缓冲区大小的问题,包括windows2000、windows NT、各种Linux版本、Unix等
- orcale 连接问题
- oracle自建job时间自动变更
直接:
SELECT A, COUNT(B) AS NUM0 FROM TABLE1 WHERE B = 0 GROUP BY A;
就可以的.
from table
where B = 0
group by 分组字段
不行的..
那样的话..就象我上面写的一样..
Name3计数=0的话..他就不会显示出来的..
你可以试下..
二楼三楼也不行.
SQL> select * from tbl;A B
---------------------------------------- ---------------------------------------
a 1
a 2
b
a SQL>
SQL> select a, sum(case when (b='' or b is null) then 0 else 1 end) total from tbl
2 group by a;A TOTAL
---------------------------------------- ----------
a 2
b 0
只是这一个表的话出不来的,因为我不知道还有'name3'
假设编码表为TABLEA
select A,(SELECT count(B)FROM TABLE WHERE B=0 AND A=TABLEA.A) AS 计数
from TABLEA
from table
group by A
order by A
hah ,用这个
b.numTotal as collectivity,
nvl(a.success,0) as success,
(b.numTotal - nvl(a.success,0)) as FAILURE
from (select tran_etc1,
nvl(count(tran_etc1),0) as success
from em_log_200808
where tran_rslt = 0
group by tran_etc1) a,
(select tran_etc1, count(tran_etc1) as numTotal
from em_log_200808
group by tran_etc1) b
where b.tran_etc1 = a.tran_etc1(+)
decode(B,'0',1) 表示当B列的值为“0”时,做 1 计算,
nvl( decode(B,'0',1),0)表示当B列的值不为零的时候,做 0 计算