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

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.hqwc.cn/news/321456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【KingbaseES】实现MySql函数Median

本方法只支持在聚合函数窗口中调用 不支持在GROUP BY中使用,使用plsql写的玩意新能都会稍微差一些 建议使用原生方法修改 CREATE OR REPLACE FUNCTION _final_median(numeric[])RETURNS numeric AS $$SELECT AVG(val)FROM (SELECT valFROM unnest($1) valORDER BY …

OpenAI换血大震动始末:“ChatGPT之父”奥特曼,缘何被“扫地出门”?

近期,AI业界发生了一场“大地震”。作为聊天机器人ChatGPT的开发者,OpenAI无疑是最受关注的人工智能公司之一。就是这家公司的联合创始人、CEO、有“ChatGPT之父”之称的阿尔特曼在“疯狂的5天”里,经历了被闪电免职、加入微软、最终又官复原…

佳能G3800彩色喷墨多功能一体打印机报5B00错误代码处理方法

5B00错误代码的含义 5B00错误代码是指佳能G3800打印机的“废墨仓已满”。这个废墨仓是打印机内部的一个部件,主要用于收集打印过程中产生的废墨。当废墨仓已满时,打印机就会报5B00错误代码。 佳能G3800彩色喷墨多功能一体打印机报5B00错误代码处理办法 …

Hadoop入门学习笔记——八、数据分析综合案例

视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记(汇总) 目录 八、数据分析综合案例8.1. 需求分析8.1.1. 背景介绍8.1.2…

润滑剂,2026年市场规模将达130亿美元

润滑剂是一种广泛应用于工业生产和机械维护中的材料,它可以降低机器设备的摩擦,提高性能和延长使用寿命。全球市场分析 从全球市场来看,润滑剂市场规模持续增长。根据市场调研机构的数据显示,预计2026年,全球润滑剂市场…

构建基础wlan网络 hcia无线

实验 旁挂组网 二层网络 ac为 dhcp的服务器给ap地址 s1给sta的ip地址 DHCP 业务为直接转发 实验步骤 第一步 poe 开启 poe en 开启 第二步 有线连接 vlan的配置 s1 vlan batch 100 101 连接的端口 port link-type trunk port trunk allow-pass …

计算机网络—网络搭建NAT内外网映射

使用Windows Server 2003 网络拓扑 Router 外网:NAT IP 网段 192.168.17.0/24内网:仅主机模式 IP 172.16.29.4 Client1:仅主机模式 IP 172.16.29.2 网关 172.16.29.1 Client2:仅主机模式 IP 172.16.29.3 网关 172.16.29.1…

ElasticSearch使用Grafana监控服务状态-Docker版

文章目录 版本信息构建docker-compose.yml参数说明 创建Prometheus配置文件启动验证配置Grafana导入监控模板模板说明 参考资料 版本信息 ElasticSearch:7.14.2 elasticsearch_exporter:1.7.0(latest) 下载地址:http…

Linux 进程(八) 进程的退出码

main 函数的返回值叫做进程的退出码。当进程成功退出的时候,我们一般用0来表示。进程失败的时候一般用非零来表示。我们使用不同的数字来表示进程退出时不同的失败原因。 我们查看系统的有多少退出码以及其含义时需要用到strerror() 他的头文件和用法如下。 通过一…

2024腾讯云轻量应用服务器详细介绍_轻量全解析

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器,CPU内存带宽配置高并且价格特别便宜,大带宽,但是限制月流量。轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年,540元三年、2核4G5M带宽218元一年,756元3年、…

快手推荐算法工程师三面回顾

快手三次技术面试一次HR面试的简单回顾,希望对大家有所启发。 一面 面试官一上来就让写算法题,第一个是计算岛屿数量,第二个是最长回文字串。 然后就是介绍自己的论文。对于论文的工作,面试官只是在问关于论文的问题&#xff0…

leetcode2487.从链表中移除节点

文章目录 题目思路复杂度Code 题目 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1: 输入:head [5,2,13,3,8] 输出:[13,8] 解释:需要移除的节点是 5 &#xff0…