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 相关文章推荐
SQL Server——索引+基于单表的数据插入与简单查询【1】
Apr 05 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
May 25 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
sql server 累计求和实现代码
Feb 28 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
详解SQL报错盲注
Jul 23 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不写闭合标签的好处
2014/03/04 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
php中strtotime函数性能分析
2016/11/20 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
QQ登录简单实现代码
2021/03/09 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
js重写方法的简单实现
2016/07/10 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python实现调用其他python脚本的方法
2014/10/05 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
教师评优的个人自我评价分享
2013/09/19 职场文书
环境科学专业个人求职信
2013/09/26 职场文书
外贸英语毕业生自荐信
2013/11/14 职场文书
宿舍违规检讨书
2014/01/12 职场文书
奠基仪式致辞
2015/07/30 职场文书
初中美术教学反思
2016/02/17 职场文书