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 相关文章推荐
【HBU】数据库第四周 单表查询
Apr 05 SQL Server
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
mybatis调用sqlserver存储过程返回结果集的方法
May 08 SQL Server
SQLServer中JSON文档型数据的查询问题解决
Jun 27 SQL Server
sql时间段切分实现每隔x分钟出一份高速门架车流量
Feb 28 SQL Server
SQL Server查询某个字段在哪些表中存在
Mar 03 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
sql server偶发出现死锁的解决方法
Apr 10 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
SQL Server携程核心系统无感迁移到MySQL实战
Jun 01 SQL Server
SQL Server数据库备份和恢复数据库的全过程
Jun 14 SQL Server
SQL中的连接查询详解
Jun 21 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JavaScript中的值类型详细介绍
2014/12/29 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python 面向对象 成员的访问约束
2008/12/23 Python
python re正则表达式模块(Regular Expression)
2014/07/16 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
家庭户外服装:Hawkshead
2017/11/02 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
业务员工作态度散漫检讨书
2014/11/02 职场文书
法制教育观后感
2015/06/17 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
pandas数值排序的实现实例
2021/07/25 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python