近期接到一个复杂统计的需求,对呼叫中心语音接入流水信息做出统计,要求单位时间内按30秒,60秒,300秒分区间统计接入量,用于进行中心话务运营情况分析,考虑了很长时间,开始是考虑使用游标+循环来做,觉得太复杂和耗时,最后用一句SQL实现了,效果如下:
原始表t_yyjrlsk(语音接入流水库),如下,里面的rq(日期),sj(时间)是我分区间统计的目标列
某时间段按30秒统计结果:
sql语句如下:
select rq,substr(sj,1,6) ||
(
case when b.qjks < 10 then '0' || b.qjks
else '' || b.qjks
end
)
|| '~' || substr(sj,1,6) || b.qjjs as sjqj,count(*)
from t_yyjrlsk a
join (select (level - 1) * 30 as qjks,(level * 30 - 1) as qjjs from dual connect by level <= 2) b
on substr(sj,7,2) >= b.qjks and substr(sj,7,2) <= b.qjjs
where rq >= 20110401 and rq < 20110402 and sj >= '00:00:00' and sj < '03:30:59'
group by rq,substr(sj,1,6),b.qjks,b.qjjs
order by rq,substr(sj,1,6),b.qjks
某时间段按60秒统计结果:
sql语句如下:
select rq,substr(sj,1,2)||':'||substr(sj,4,2)||':00~'||substr(sj,1,2)||':'||substr(sj,4,2)||':59' as sjqj,count(*)
from t_yyjrlsk
where rq >= 20110401 and rq < 20110402 and sj >= '00:00:00' and sj < '03:30:59'
group by rq,substr(sj,1,2),substr(sj,4,2)
order by rq,substr(sj,1,2),substr(sj,4,2)
某时间段按300秒统计结果:
sql语句如下:
select rq,substr(sj,1,2) || ':' ||
(
case when b.qjks < 10 then '0' || b.qjks
else '' || b.qjks
end
)
|| ':00' || '~' || substr(sj,1,2) || ':' ||
(
case when b.qjjs < 10 then '0' || b.qjjs
else '' || b.qjjs
end
)
|| ':59' as sjqj,count(*)
from t_yyjrlsk a
join (select (level - 1) * 5 as qjks,(level * 5 - 1) as qjjs from dual connect by level <= 12) b
on substr(sj,4,2) >= b.qjks and substr(sj,4,2) <= b.qjjs
where rq >= 20110401 and rq < 20110402 and sj >= '00:00:00' and sj < '03:30:59'
group by rq,substr(sj,1,2),b.qjks,b.qjjs
order by rq,substr(sj,1,2),b.qjks
分享到:
相关推荐
Oracle的`CONNECT BY`和分析函数是数据库查询中的两种强大工具,主要用于处理复杂的数据结构和进行高级数据分析。本文将深入探讨这两种技术。 ### Oracle `CONNECT BY` 用法总结 `CONNECT BY` 是Oracle SQL中用于...
在Oracle中,除了上述的基本分组,还可以通过`LEVEL`, `CONNECT BY`来实现更复杂的分组,如按时间段分组。`LEVEL`是Oracle中的一个伪列,常用于递归查询,而`CONNECT BY`则用于创建树形结构。在时间操作中,可以结合...
通过理解和掌握Oracle中的递归查询,我们可以有效地处理层次数据,构建和查询复杂的树形结构,这对于管理和维护数据库中的关系型数据至关重要。无论是权限管理还是业务流程分析,递归查询都是一个强大且不可或缺的...
7. **层次查询**:通过CONNECT BY语句,Oracle支持查询数据的层级结构,如组织结构、产品类别等,能够以树状形式展示数据。 8. **管道函数**:管道函数(PIPELINED)允许PL/SQL程序作为一个数据源,通过将数据流...
10. **高级SQL特性**:如递归查询(CONNECT BY)、分区表、物质化视图、物化查询块、索引组织表等,这些都是提升数据库性能的重要手段。 11. **数据类型**:详述Oracle支持的各种数据类型,如数值型、字符型、日期...
CONNECT BY`,用于构建复杂的层次查询。 除了这些基础函数,MySQL 和 Oracle 还支持大量的高级特性,例如窗口函数、递归查询、正则表达式等。在实际应用中,开发者可以根据需求选择合适的数据库系统,并熟练运用其...
10. 连接函数:如CONNECT_BY_ROOT和START_WITH,用于构建复杂的树状查询,处理层次结构数据。 11. 正则表达式函数:如REGEXP_LIKE和REGEXP_SUBSTR,提供了强大的文本匹配和提取功能,提高了数据处理的精度。 通过...
当不能关闭数据库时,可以用startup force来完成数据库的关闭 先关闭数据库,再执行正常启动数据库命令 7、startup pfile=参数文件名 带初始化参数文件的启动方式 先读取参数文件,再按参数文件中的设置启动数据库...
`GROUP BY` 和 `HAVING` 子句是SQL中的基础工具,但在Oracle 10g中,你可以使用 `CUBE()`, `ROLLUP()`, `GROUPING SETS()` 进行多维度分析,创建更复杂的分组。`CONNECT BY` 用于构建层次结构,如组织结构或产品分类...
如果需要彻底删除一个节点及其所有子节点,则需要将过滤条件放在`CONNECT BY PRIOR`子句中: ```sql -- 过滤SCOTT用户,但SCOTT的下属ADAMS仍然显示 SELECT LEVEL, LPAD(' ', 2 * LEVEL - 1) || ename AS "Ename", ...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的内置函数,以帮助用户进行复杂的数据操作和查询。本篇文章将深入探讨"Oracle函数"这一主题,主要关注描述中的"110种常见函数"。 1. **数学函数**:...
10.3.1 一个CONNECT BY的例子 274 10.3.2 使用RSF的例子 275 10.3.3 RSF的限制条件 276 10.3.4 与CONNECT BY的不同点 276 10.4 复制CONNECT BY的功能 277 10.4.1 LEVEL伪列 278 10.4.2 SYS_CONNECT_BY_PATH...
WITH子句(也称为公用表表达式,CTE)配合CONNECT BY语句可用于执行递归查询,解决层次结构问题,如组织架构、产品分类树等。 八、游标 游标(Cursor)允许逐行处理查询结果,对于循环处理大量数据或在PL/SQL代码中...
2. **层次查询**:使用CONNECT BY和START WITH进行层次结构查询。 #### 二、数据库管理 **1. Oracle的构件和组件** - **Oracle架构概述**:包括实例和数据库。 **2. 数据库的物理结构** 1. **控制文件**:存储...
CREATE DATABASE LINK maclean_connect_to_maclean IDENTIFIED BY maclean USING 'G10R21'; ``` 4. **使用`dbms_comparison`包**: 使用`dbms_comparison`包来对比两个表的数据。例如,可以调用`dbms_...
- **分组总结**: 综合使用 `group by` 和 `having` 子句进行复杂的统计分析。 #### 七、多表查询 ##### 7.1 多表查询,between and 语句 - **多表联接**: 使用 `join` 语句。 - 示例: `select e.name, d....
根据提供的文件信息,我们可以从中提炼出与Oracle 9i SQL2相关的多个重要知识点。下面将对这些知识点进行详细的阐述。 ### Oracle 9i SQL2简介 #### 1. Oracle 9i SQL2背景 Oracle 9i SQL2是Oracle公司推出的一款...
- **GROUP BY统计报告**:通过分组计算统计数据。 - **分层查询**:层次查询,如CONNECT BY,用于处理树状结构数据。 - **ORACLE TIMEZONE**:处理时区转换,用于全球化应用。 - **正则表达式**:用于复杂的数据匹配...
7. **连接与分组函数**:如CONNECT_BY_ROOT、START WITH、CONNECT BY用于构建层次查询;GROUP BY和ROLLUP用于数据分组。 8. **游标和PL/SQL过程**:游标是处理单条记录的指针,常用于循环遍历结果集。PL/SQL是...