Oracle 5分钟或30分钟分割方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,在最近项目中,有一个客户需求是针对每天所有时间点的数据,分割成每5分钟展示一个用户数总数。数据情景是:一个游戏中所有用户在线的时间数据(当然简单的求和,可能会有重复数据)。但在这重点是Oracle S
千家信息网最后更新 2025年11月07日Oracle 5分钟或30分钟分割方法
在最近项目中,有一个客户需求是针对每天所有时间点的数据,分割成每5分钟展示一个用户数总数。
数据情景是:
一个游戏中所有用户在线的时间数据(当然简单的求和,可能会有重复数据)。但在这重点是Oracle SQL 中用于按照一定时间间隔分割的方法,具体5分钟分割实例如下:
SELECT tt.reasonContent,to_char(tt.day_id,'hh34:mi')daytime ,tt.num FROM (
SELECT ll.day_id,ll.reasonContent,COUNT(*) num FROM (
SELECT d.day_id,dd.logtime,dd.groupname,dd.userid,dd.reasonContent FROM (
SELECT i.logtime,i.gameid,i.Groupname,i.userid,i.reason,CASE WHEN dic.key_id IS NULL THEN '其他原因' ELSE dic.key_value END reasonContent FROM
table i LEFT JOIN
tableDic dic ON i.reason=dic.key_id )dd ,
(SELECT TO_DATE('2014-09-20 00:00:00','yyyy-mm-dd hh34:mi:ss') +(1 / 24 / 60 * 30 * (ROWNUM - 1)) DAY_ID FROM DUAL
CONNECT BY ROWNUM <= 288) D WHERE D.DAY_ID - (1 / 24 / 60 * 30) <= dd.LOGTIME AND D.DAY_ID >= dd.LOGTIME) ll GROUP BY ll.day_id,ll.reasonContent ORDER BY ll.day_id ) tt
关键代码:
(SELECT TO_DATE('2014-09-20 00:00:00','yyyy-mm-dd hh34:mi:ss') +(1 / 24 / 60 * 5 * (ROWNUM - 1)) DAY_ID FROM DUAL
CONNECT BY ROWNUM <= 288) D WHERE D.DAY_ID - (1 / 24 / 60 * 5) <= dd.LOGTIME AND D.DAY_ID >= dd.LOGTIME解释: 一天有24小时,有288个5分钟点。通过ROWNUM结合Connect BY 来实现递增分割。
如果增量是5分钟,那么
(1 / 24 / 60 * 5 * (ROWNUM - 1))
如果增量是30分钟,那么
(1 / 24 / 60 * 30 * (ROWNUM - 1))
"CONNECT BY"是Oracle 的层次查询子句,一般用于树状或者层次结果集的查询。
数据
时间
增量
层次
用户
查询
方法
代码
关键
原因
子句
实例
客户
小时
总数
情景
用户数
结果
重点
钟点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器硬盘怎么下载电影
传统服务器缺点
物业管家软件开发多少钱
网络安全是民生重要一环
升级功能数据库实现
互联网上的黑科技有限公司
网络安全法手绘展板
软件开发手机读取蓝牙端口
分布式数据库交易
肇庆最好软件开发学校
sci影响因子查询数据库
软件开发收费项目
数据库复制粘贴可以用吗
搜索引擎有数据库性质吗
怎么用手机编程网络安全
信息管理软件开发实验报告
无需服务器的远程摄像头
天脉网络技术有限公司电话
软件开发团队组建与职责
服务器耗流量快吗
新兴财务软件数据库
自考本科软件开发
web服务器概念
HTML 图片与数据库连接
老君山民宿软件开发
从事软件开发的是什么岗位
山东网络安全技术大赛
河南飞普网络技术工商注册号
IT软件开发怎样自学
华为超聚变服务器拿来干嘛的