sql时间段切分实现每隔x分钟出一份高速门架车流量


Posted in SQL Server onFebruary 28, 2022

业务场景:

我们需要查询从表T里查询某一天按照5分钟为一段间隔通过高速门架的车流量。部分脱敏数据如下

sql时间段切分实现每隔x分钟出一份高速门架车流量

表T里包含time,id,chepai,部分数据为(’2020-02-23 00:43:27','某高速门架0010','浙XXXXXX')

按照正常情况下我们的限定where条件是time >= '2020-02-23 0:00' and time < '2020-02-23 0:00'  或者 between等,但是这样来写一两个还行,要每隔5分钟切分一次,需要写二百多,过于麻烦

解决思路:

  • 需要把时间进行下降到其5分钟开始的最初时间处理,即00:12:30是在00:10:00-00:15:00之间,要转换为00:10:00,同样10:21:39在10:20:00-10:25:00,所以转换为10:20:00,这样一来五分钟内的数据都下降统一成5分初的时间,也就是5分钟这一段的数据就有了。当然也可以把数据进行上升处理,只不过23:55:00-23:59:59这个时间段就上升到第二天的00:00了
  • 对时间段进行下降处理思想有了,问题是如何实现:可以把时间字段转换为数字整形,即每一个时间都对应着一串数字,只要把这个数字由年月日时分秒切割相加再除以5,然后向下取整再乘以5,最后再转换为时间,这样就能达到下降了,这里的核心思想就是无法整除5的那部分余数就是5分钟这个时间段的,现在我们向下取整,比如2.75向下取整是2,那么就能把时间下降了。同样的如果是每隔10分钟,那就是除以10,每隔1小时的,直接substr切分时间字段就可以了
  • 这里使用强大的两个函数FROM_UNIXTIME和UNIX_TIMESTAMP来完成
SELECT t.time,
        t.id,
        COUNT(DISTINCT(t.chepai)) num
FROM 
    (SELECT time,
        id,
		-- FROM_UNIXTIME把整型数字转为时间类型
        FROM_UNIXTIME(
			-- 一般年月日无需动,直接unix_timestamp先转为整型再加上时分秒即可
			unix_timestamp(left(time,10))
			-- 分*60+秒然后除以5,floor向下取整后再*5*60,具体思路见上
			+5*60*floor((substr(PicTime,12,2)*60+substr(Pictime,15,2))/5)
			) time,
        chepai
    FROM T
    WHERE left(time,10) = '2020-02-23'
    ORDER BY  time asc)t
GROUP BY  t.time,t.id
ORDER BY  t.time,t.id

到此这篇关于sql时间段切分实现每隔x分钟出一份高速门架车流量的文章就介绍到这了,更多相关sql时间段切分内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
SQL Server基本使用和简单的CRUD操作
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
mybatis调用sqlserver存储过程返回结果集的方法
May 08 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
sql server 累计求和实现代码
Feb 28 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
如何使用SQL Server语句创建表
Apr 12 SQL Server
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
SQL Server删除表中的重复数据
May 25 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 #SQL Server
Sql Server之数据类型详解
Feb 28 #SQL Server
sql server 累计求和实现代码
Feb 28 #SQL Server
SQL SERVER触发器详解
Feb 24 #SQL Server
SQL SERVER存储过程用法详解
Feb 24 #SQL Server
SQL SERVER实现连接与合并查询
Feb 24 #SQL Server
SQLServer中exists和except用法介绍
You might like
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
JS高级运动实例分析
2016/12/20 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python3中布局背景颜色代码分析
2020/12/01 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
美国家具网站:Cymax
2016/09/17 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
学用政策心得体会
2014/09/10 职场文书
办公室主任个人总结
2015/02/28 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
会议新闻稿
2015/07/17 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python