Oracle 5分钟或30分钟分割方法
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,在最近项目中,有一个客户需求是针对每天所有时间点的数据,分割成每5分钟展示一个用户数总数。数据情景是:一个游戏中所有用户在线的时间数据(当然简单的求和,可能会有重复数据)。但在这重点是Oracle S
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
沪动网络技术有限公司怎么样
27了学数据库晚吗
服务器数据恢复过程
电子软件开发是什么
vsco服务器连接失败怎么办
网络安全试点示范
关系数据库优缺点
为什么光遇一直显示服务器失败
设置数据库本地数据库密码
网络布线服务器
mqtt 消息写入数据库
深圳钧保互联网科技有限公司
网络安全与外网
网络安全行业客户分类明细大全
通用服务器和服务器的区别
服务器虚拟化成本
数据库的数据源在哪个目录
java客户端与服务器
侨联网络安全应急
联通陕西省公司软件开发
市人社局网络安全风险排查报告
密码学与网络安全毕业论文题目
天津生鲜app软件开发
智能网络安全专业大学排名
奉贤区软件开发市场
生存战争服务器全集
计算机网络技术专业误解
网络安全法从哪年开始宣传
服务器网络实用工具
网络安全隐私保护法律法规