MySQL检索距离当前最近的7个小时内,靠近每个时间点数据信息

news/2024/6/30 9:45:11

MySQL检索距离当前最近的7个小时内,靠近每个时间点数据信息

如果你想在最近7个小时内找到每个时间点最接近的数据,即使某些时间点没有数据,你可以使用子查询和窗口函数。以下是一个示例查询:

sqlCopy codeSELECTt.time_point,COALESCE(y.your_column1, 0) AS your_column1,COALESCE(y.your_column2, 0) AS your_column2,...
FROM (SELECTCURDATE() + INTERVAL (HOUR(NOW()) - n) HOUR AS time_pointFROM(SELECT 0 AS nUNION SELECT 1UNION SELECT 2UNION SELECT 3UNION SELECT 4UNION SELECT 5UNION SELECT 6) AS hours
) t
LEFT JOIN (SELECTyour_column1,your_column2,...,your_datetime_column,ROW_NUMBER() OVER (PARTITION BY HOUR(your_datetime_column) ORDER BY ABS(TIMESTAMPDIFF(SECOND, your_datetime_column, NOW()))) AS row_numFROMyour_tableWHEREyour_datetime_column >= NOW() - INTERVAL 7 HOUR
) y ON t.time_point = DATE_FORMAT(y.your_datetime_column, '%Y-%m-%d %H:00:00') AND y.row_num = 1
ORDER BYt.time_point DESC;

在这个查询中,我们首先创建了一个包含过去7个小时内每个小时的时间点的临时表 t。然后,我们使用一个子查询从 your_table 中选择最近7个小时内每个小时内最接近当前时间的数据,并为每个小时的数据分配了一个 row_num

最后,我们使用 LEFT JOIN 将时间序列表和筛选后的数据连接,确保每个时间点都包含最接近的数据。ORDER BY 子句按照时间点降序排列。

请根据你的实际表和列名称进行适当的替换。这个查询假设每个小时内最多只有一条数据,如果有多条数据,可能需要根据具体需求进行调整。

实践

在这里插入图片描述

SELECTt.time_point ,y.id,y.NAME,y.creatime 
FROM(SELECTCURDATE() + INTERVAL ( HOUR ( NOW()) - n ) HOUR AS time_point FROM( SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 ) AS hours ) tLEFT JOIN (SELECTid,NAME,creatime,ROW_NUMBER() OVER (PARTITION BY HOUR ( creatime ) ORDER BYABS(TIMESTAMPDIFF(SECOND,creatime,NOW()))) AS row_num FROMUSER WHEREcreatime >= NOW() - INTERVAL 7 HOUR ) y ON t.time_point = DATE_FORMAT( y.creatime, '%Y-%m-%d %H:00:00' ) AND y.row_num = 1 
ORDER BYt.time_point DESC;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/6173.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

十六:爬虫-验证码与字体反爬

一:验证码 验证码(CAPTCHA)是一种计算机程序设计技术,用于确定用户是人类而不是机器。它通常表现为一种图像或声音,要求用户在输入框中输入正确的文本或数字来证明自己是人类。因为机器人和计算机程序无法像人类一样理…

[论文笔记] Megtron_LM 0、报错:vscode调试无法传进去参数 launch.json文件获取args参数

解决方法: 配置好launch.json文件后,应该点运行和调试里面的运行按钮。而不是直接点文件右上角的debug。 可以看到terminal中,如果没有正常加载launch.json,则参数中没有args的参数。 如果正常加载,可以看到args的很多…

python+selenium如何做接口自动化测试?

首先, 确定一点我们可以用python和selenium做接口自动化测试, 但不能说只有selenium,因为selenium只是python中的一个包, 他总是和多个包一块综合去运用。要做接口自动化第一步:要把python安装到你的电脑中&#xff0c…

法线贴图可以实现什么样的3D效果

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在 3D 建模中,曲面由多边形表示。照明计算是基于这些多边…

基于Java网上点餐系统设计与实现

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

几种读nii图像方法的轴序比较

读 .nii / .nii.gz 图像并转成 numpy 可用 medpy.io、nibabel、itk、SimpleITK 几种方法,然而几种方法读出来的轴序有出入,本篇比较此几种方法。 Datum 所用数据来自 verse,经 iTomxy/data/verse/preprocess.py 预处理,朝向和轴…