Oracle 5分钟或30分钟分割方法
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,在最近项目中,有一个客户需求是针对每天所有时间点的数据,分割成每5分钟展示一个用户数总数。数据情景是:一个游戏中所有用户在线的时间数据(当然简单的求和,可能会有重复数据)。但在这重点是Oracle S
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
江苏根荣互联网科技
科技企业和互联网企业
深圳互联网科技公司
科技服务与互联网
互联网科技革命
互联网科技的英文
左右互联网络科技
北京三清互联网科技
互联网之后的科技是什么
南山科技园互联网公司有哪些
湖南诚度互联网科技有限公司
辽宁互联网新科技
开一家科技互联网公司需要多少钱
深圳市罗太互联网科技有限公司
爱医互联网络科技
广州百诚互联网科技有限公司官网
江苏互联网智能科技产品出厂价
互联网公司属于科技吗
安徽零酒互联网科技有限公司
银川新华互联网科技学校招聘
科技互联网
互联网科技巨头监管
杭州互联网科技公司
猫创互联网科技
互联网科技股午盘股票涨跌
成都玖崟互联网科技有限公司乐商圈怎么样
哈尔滨新华互联网科技学院
中国的互联网科技企业的崛起
互联网企业和科技型企业
珠海东科互联网科技有限公司