Oracle中统计契合某列条件的列总和
来源:互联网 发布:玻璃水 知乎 编辑:程序博客网 时间:2024/05/29 08:06
最近在项目报表中需要一个查询语句,用来统计符合某一列条件的其它几列的个数
比如有下面一个表结构:
需要在列D后面增加一列,统计在列A不为空,并且列B、C、D不为空的个数
经过自己试验,查找帮助,总算实现了上面的查询。
首先讲几个函数的用法:
NULL:指的是空值,或者非法值。
NVL (expr1, expr2)
参数说明:如果expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
NVL2 (expr1, expr2, expr3)
参数说明:如果expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2)
参数说明:如果相等返回NULL,不等返回expr1
下面是本人通过两种方法实现的结果
方法一:
代码
1 Select a,
2 b,
3 c,
4 d,
5 Case
6 When a Is Not Null Then
7 Nvl2(b, 1,0) + Nvl2(c, 1,0) + Nvl2(d, 1,0)
8 Else
9 0
10 End E
11 From AA
方法二:
代码
1 Select a,
2 b,
3 c,
4 d,
5 Case
6 When a Is Not Null Then
7 decode(b,'',0,1) + decode(c,'',0,1) + decode(d,'',0,1)
8 Else
9 0
10 End E
11 From AA
效果图显示:
- Oracle中统计契合某列条件的列总和
- excel中统计某一列大于某个数的个数 并标出来
- 在mysql中统计每人每天num总和
- Oracle中统计所有的表中的记录数
- ORACLE SQL语句中统计上个月,上周,昨天的记录
- 一个两列的表中统计出三列的SQL语句
- 标识列所用的计数值重置
- 使用jQuery方便的统计Repeater列的总和
- 月报统计:根据数据库表字段并按月查询某列的总和(sum)
- 用awk命令计算文件中某一列的总和
- 计算文档中某一列数值的总和
- 字符串中统计某字母的次数等【Java Base】
- JSP中统计用户在某页面的停留时间
- oracle 的伪列
- 列的维护(Oracle)
- Oracle的伪列
- Oracle的伪列
- oracle的列操作
- 系统盘刻录方法
- live555代码分析
- LR错误代码-26374的一个解决途径
- 在SUN Solaris下连续ping的使用
- System.getproperties()所有参数
- Oracle中统计契合某列条件的列总和
- ETL数据加载策略
- Oracle随机函数的用法
- 数据仓库之拉链算法(转)
- 数据仓库数据质量的问题探讨(转)
- Oracle Latch及latch矛盾
- Linux编程make命令介绍
- atumation --test
- http://blog.csdn.net/winneraqun/archive/2009/09/11/4542017.aspx