oracle条件查询数量统计,Oracle多条件的统计查询(case when)
要做一个统计查询的功能,因为涉及多张表,多种条件的统计分析。一开始便想到了UNION和IF语句,然后写了1000多行代码,就为了查30条数据觉得不应该。
然后就开始百度,多种条件下的统计。然后有一种语法让我眼前一亮,case when then else end
当满足CASE设定的条件时,就可以执行then语句。由于我要做的分组查询统计,是要罗列每一种情况,而且根据输入的“管理员编号”不同返回不同结果,结果记录的条数和每一种情况是可知的,这个语法完全可用
核心代码如下:
SELECT SUBSTR(A.业务,1,2) 行政区域,SUBSTR(A.业务,3,LENGTH(A.业务)-2) 业务模块,A.已结案,A.办理中,A.案件总数,
ROUND(A.已结案 /decode(A.案件总数, 0, 9999,A.案件总数), 4) * 100 || '%' 完成率
FROM
(SELECT '市级律师服务' 业务,
1 排序,
SUM(CASE WHEN 区县代码 IS NULL AND (TRUNC(委托时间, 'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 IN ('ztdm1','ztdm2') THEN 1 ELSE 0 END) 已结案,
SUM(CASE WHEN 区县代码 IS NULL AND (TRUNC(委托时间, 'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 NOT IN ('ztdm1','ztdm2') THEN 1 ELSE 0 END) 办理中,
SUM(CASE WHEN 区县代码 IS NULL AND (TRUNC(委托时间, 'DD') BETWEEN V_SJQ AND V_SJZ) AND 申请状态代码 IS NOT NULL THEN 1 ELSE 0 END) 案件总数
FROM TA_律师申请委托
)A
WHERE A.排序 IN(V_排序1,V_排序2,V_排序3,V_排序4,V_排序5)
ORDER BY A.排序;
通过排序号,来控制不同管理员查询的数据范围不同:
V_排序1 INTEGER;
V_排序2 INTEGER;
V_排序3 INTEGER;
V_排序4 INTEGER;
V_排序5 INTEGER;
-----------------------------
SELECT
DECODE(P_管理员编号,'test1',2,
'test2',3,
'test3',4,
'test4',5
) INTO V_排序1 FROM DUAL;
V_排序2:=V_排序1+6;
V_排序3:=V_排序1+12;
V_排序4:=V_排序1+18;
V_排序5:=V_排序1+24;
目前测试数据量不大,优化前后性能差别不明显,但是代码行数减少了3倍以上,可读性明显增强,少了很多IF判断,理论上复杂度减少很多。
oracle条件查询数量统计,Oracle多条件的统计查询(case when)相关推荐
- python使用pandas基于时间条件查询多个oracle数据表
python使用pandas基于时间条件查询多个oracle数据表 目录 python使用pandas基于时间条件查询多个orcale数据表 #orcale数据连接
- Oracle 数据库 - sql语句筛选出符合查询条件的第一条结果实例演示,sql查询结果只显示指定行数的数据方法
默认看到查询条件有 3 条结果,我想只查询出日期最晚的那一条记录. -- 默认查询条件 select settledate as "日期", syscalculationmny a ...
- oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!
数据统计,我们并不陌生,但是在实际的工作或应用中,数据统计都是附加条件的,而且大多情况下是"多条件"的,此时,我们必须掌握"Ifs"系列函数. 一.多条件判断: ...
- oracle中条件or,OR条件如何使用?总结OR条件实例用法
这个亏已经吃过很多次了,在开发以前的sql代码里面,许多以 or 作为where条件的查询,甚至更新.这里举例来说明使用 or 的弊端,以及改进办法.select f_crm_id from d_db ...
- Excel使用COUNTIF函数统计满足多个条件的数量【转载】
文章目录 在Excel中,如果要统计满足多个条件的数量,可以使用COUNTIF函数统计满足多个条件的数量.Excel2007可使用COUNTIF函数统计满足多个条件的数量. 如在单元格中输入下面公式: ...
- 通过JDBC实现对Oracle,mysql数据库的增删改查,模糊查询,查询全部,根据ID查询,分页查询,统计查询,
首先,需要了解一些连接Oracle的基础的知识 jdbc:oracle:thin:@localhost:1521:orcl是java程序通过jdbc连接oracle数据库的一种方式. 解释: jdbc ...
- oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?
oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...
- oracle怎么查询同名学生,数据库:SQL“查询同名同姓学生名单,并统计同名人数”延伸...
/*30.查询同名同姓学生名单,并统计同名人数*/ Select Sname,count(*) as NUM from Student group by Sname having count(*)&g ...
- oracle+统计表的字段,统计系统中表的个数与查询所有表的字段信息-Oracle
统计系统中表的个数与查询所有表的字段信息 –统计系统中表的个数: –表描述字段: –需要字段:Name.Code.Commente select lower(a.TABLE_NAME) || '-' ...
- oracle统计事务,统计Oracle 查询事务数的方法
大家好!AningDBA又和大家见面了,今天朋友问我一个问题,把我给问住了,问题听起来很简单,就是查询"每天的事务数". 听到这个问题,大家的第一反映,我相信大部分人会和我一样,首 ...
最新文章
- linux下的ping脚本,Linux下检测服务器Ping值的Shell脚本
- html grid布局,css grid布局使用
- 复合高斯积分(节点数小于等于3的版本Python实现)
- Boost:每个连接处理的测试程序
- 太赞了!避免掉坑!佐治亚理工21页优雅读博指南
- 如何将一个完整项目推到码云_「码云下载项目」如何通过Git将本地项目提交到码云或GitHub...
- 前端基础练习项目——网页版扫雷
- 远卓:数字化转型的精益化思考
- px和毫米的换算_px和厘米怎么换算?
- 简述P问题,NP问题,NP完全问题以及NP Hard问题
- 工业通讯 | OEM嵌入式通讯模块与西门子PLC S7-1200通讯测试指南
- 深度网络自适应DCC算法
- 女生更多!统计局:2019年高等教育在校生中女研究生占比过半
- html5 梵高 星,上海梵高星空艺术馆门票
- shrinkwrap-resolver解析pom依赖
- 问:平面布置图是什么?有什么作用?如何判断好的平面布置图方案?如何绘制?
- [Zer0pts2020]easy strcmp
- 华为鸿蒙几点开发布会,华为鸿蒙发布会6月2日直播几点开始?附直播观看入口...
- 大物复习整理(自用)
- oracle rac vip什么用,Oracle VIP说明