我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle 5分钟或30分钟分割方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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 的层次查询子句,一般用于树状或者层次结果集的查询。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle 5分钟或30分钟分割方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

hive计算分钟差的方法是什么

在Hive中,可以使用TIMESTAMPDIFF函数来计算两个时间戳之间的分钟差。具体语法如下:SELECT TIMESTAMPDIFF(MINUTE, start_timestamp, end_timestamp) AS minute_
hive计算分钟差的方法是什么
2024-04-08

centos7中crontab定时计划任务5分钟一次命令写法

1.输入命令:[root@master ~]# crontab -e2.添加:*/5 * * * * /usr/share/nginx/spark_run_nginx_log.sh 2&>1 >> /usryiATkS/share/ngin
2022-06-04

Python中使用pip安装方法1分钟搞定

一分钟学会Python中pip的安装方法,需要具体代码示例在Python开发中,使用第三方库是非常常见的。而要下载和安装这些库,我们通常会使用pip来进行操作。pip是Python官方推荐的包管理工具,它能够帮助我们快速安装、卸载、更新和
Python中使用pip安装方法1分钟搞定
2024-01-16

3分钟迅速学会Vue中methods方法使用技巧

最近在学习Vue,感觉methods还是有必有总结一下的,下面这篇文章主要给大家介绍了关于3分钟迅速学会Vue中methods方法使用技巧的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-02-08

一分钟带你掌握Python中pip的安装与使用方法

目录一、简单介绍二、下载安装三、最常用命令1、显示版本和路径2、获取帮助3、升级 pip4、安装包5、升级包6、卸载包7、搜索包8、显示安装包信息9、列出已安装的包10、查看指定包的详细信息一、简单介绍 pip 是 Python 包管理工具
2022-06-02

三分钟带你掌握Java开发图片验证码功能方法

这篇文章主要来为大家详细介绍Java实现开发图片验证码的具体方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
2023-02-13

Node.js node-schedule定时任务隔多少分钟执行一次的方法

在 Node.js 中,我使用 node-schedule 来执行定时任务。Cron-style 的时间格式对于初学者不太直观,所以一般使用这种方式:比如官方示例中的每个小时的 42 分执行任务var schedule = require(
2022-06-04

Oracle中分割字符串的方法实例代码

目录1. 使用 regexp_substr() 函数1.1 方式11.2 方式21.3 注意问题(尤其是存储过程中用到,可能会入坑)2. 自定义函数2.1 自定义类型 table2.2 自定义函数2.2.1 自定义函数2.2.2 效果如下:
2023-02-15

一分钟清除系统中所有垃圾文件的方法教程

本篇内容介绍了“一分钟清除系统中所有垃圾文件的方法教程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Windows在安装和使用过程中都会产生
2023-06-09

3分钟快速搭建nodejs本地服务器方法运行测试html/js

做前端的都知道,公司的项目在自己的电脑上搭建环境是挺麻烦的一件事情首先:一般个人电脑没公司的配置性能好,其次:搭建公司项目在自己电脑涉及很多缓存环境,资源环境包,数据库等的限制,加起来够搞一天了(熟悉公司搭建的环境除外)就我自身公司而言情况
2022-06-04

mysql查询过去24小时内每小时数据量的方法(精确到分钟)

目录项目场景:问题描述解决方案:附:mysql 查询每小时数据的总数总结项目场景:获取过去24小时每小时数据量(没有为0)问题描述时间段要求精确到分钟,即:10.33 ~ 11.33,11.33~12.33…&helli
2023-03-06

Discuz提示“密码错误次数过多,请15分钟后重新登陆”问题解决方法

在使用论坛过程中,有时候会遇到这样的提示&ldquo编程客栈;密码错误次数过多,请 15 分钟后重新登陆”,因为忘记密码而登陆次数过多被锁定。当然也不排除有人利用暴力破解工具一直在爆破各种管理员密码,从而导致管理员或用户不能登录
2022-06-12

编程热搜

目录