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

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

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

sqlCopy codeSELECT
  t.time_point,
  COALESCE(y.your_column1, 0) AS your_column1,
  COALESCE(y.your_column2, 0) AS your_column2,
  ...
FROM (
  SELECT
    CURDATE() + 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
) t
LEFT JOIN (
  SELECT
    your_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_num
  FROM
    your_table
  WHERE
    your_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 BY
  t.time_point DESC;

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

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

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

实践

在这里插入图片描述

SELECT
	t.time_point ,
	y.id,
	y.NAME,
	y.creatime 
FROM
	(
	SELECT
		CURDATE() + 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 
	) t
	LEFT JOIN (
	SELECT
		id,
		NAME,
		creatime,
		ROW_NUMBER() OVER (
			PARTITION BY HOUR ( creatime ) 
		ORDER BY
			ABS(
				TIMESTAMPDIFF(
					SECOND,
					creatime,
				NOW()))) AS row_num 
	FROM
	USER 
	WHERE
		creatime >= 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 BY
	t.time_point DESC;

在这里插入图片描述

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

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

相关文章

Hive用户自定义函数之UDF开发

在进行大数据分析或者开发的时候,难免用到Hive进行数据查询分析,Hive内置很多函数,但是会有一部分需求需要自己开发,这个时候就需要自定义函数了,Hive的自定义函数开发非常方便,今天首先讲一下UDF的入门开发…

Python初探:从零开始的编程奇妙之旅

一、Python是什么 Python是一门多用途的高级编程语言,以其简洁、易读的语法而脱颖而出。在深度学习领域,Python扮演着至关重要的角色。其丰富的科学计算库(如NumPy、Pandas、Matplotlib)和强大的深度学习框架(如Tenso…

树莓派通过 I2C 驱动 LCD1602 液晶屏

前一阵用废旧的树莓派做了一个NAS服务器,手里还要一块闲置的LCD 1602 液晶屏模块,可以用来实时显示IP,作为NAS的服务器输出显示。 在树莓派上LCD 1602 液晶屏模块的使用非常简单,可以用 I2C 方式的驱动,只要使能0&…

【无标题】一本好书

(https://img-blog.csdnimg.cn/9e3c2302242149e4ac7dbc834bd5e027.jpg)(https://img-blog.csdnimg.cn/3427ed8648ff46bbb496ed512e0aa9cd.jpg1

2分钟了解什么是socket?

文章目录 概念比喻类型Socket 与 TCP、UDP的关系 概念 Socket 是提供网络通信功能的编程接口(API),提供了网络通信的基本操作,允许程序或进程之间进行数据交换。是传输层协议的具体软件实现,它封装了协议底层的复杂实…

构建高效数据中台:集群规划与搭建的最佳实践指南

架构设计 Rack(机架)配置建议 大数据集群规划 安装细节见配套文档 两地三中心 两地三中心是一种信息技术架构模式,通常用于灾难恢复和业务连续性计划。这种模式设计有两个物理位置(两地),在这两个位置上部署了三个数据中心(三中心):一个主数据中心和两个备份数据中心…

docker 安装可视化工具 Portainer 以及 汉化

安装portainer是最新版本,汉化指定版本2.9.1 。如果要安装汉化版,可直接跳转步骤四 一、拉去镜像 安装网址:Install Portainer BE with Docker on Linux - Portainer Documentation docker pull portainer/portainer二、根据portainer镜像创建…

React Admin 前端脚手架之ant-design-pro

文章目录 一、React Admin 前端脚手架选型二、React Admin 前端脚手架之ant-design-pro三、ant-design-pro使用步骤四、常用总结(持续更新)EditableProTable组件 常用组件EditableProTable组件 编辑某行后,保存时候触发发送请求EditableProTa…

代码随想录算法训练营第五十五天|392.判断子序列、115.不同的子序列

代码随想录 (programmercarl.com) 392.判断子序列 可以不连续 类似LC1143-求最长公共子序列 1.dp数组及下标含义 dp[i][j]:表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。 2.递推公式 if (s[i…

51、全连接 - 特征的全局融合

Resnet50 中的核心算法,除了卷积、池化、bn、relu之外,在最后一层还有一个全连接。 下图是 Resnet50 网络结构结尾的部分,最后一层 Gemm(通用矩阵乘法)实现的就是全连接操作。而矩阵乘法我们之前介绍过,传送门在:矩阵乘。 卷积也好,矩阵乘法也好,其目的都是为了完成神…

RT_Thread 调试笔记

说明:记录日常使用 RT_Thread 开发时做的笔记。 1.打印相关 1.打印宏定义,可以打印打印所在文件,函数,行数。 #define PRINT_TRACE() printf("-------%s:%s:%d------\r\n", __FILE__, __FUNCTION__, __LINE__);2. rt…

阶段十-分布式-任务调度

第一章 定时任务概述 在项目中开发定时任务应该一种比较常见的需求,在 Java 中开发定时任务主要有三种解决方案:一是使用JDK 自带的 Timer,二是使用 Spring Task,三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其…

普通用户用哪款电脑杀毒软件最好?

前言 各位小伙伴接触到电脑的时候,都一定有听过“电脑一定要安装杀毒软件”这句话。 毕竟在电脑诞生之初到今天,电脑木马和病毒依旧存在。 中了木马或病毒的电脑会出现什么现象?具体得看中了什么样的病毒。 但轻则资料泄漏、电脑瘫痪&…

动态分区分配算法-第四十四天

目录 前言 首次适应算法(First Fit) 最佳适应算法(Best Fit) 最坏适应算法(Worst Fit) 临近适应算法(Next Fit) 本节思维导图 前言 动态分区分配算法:在动态分区分…

联想M7400加粉后如何清零

联想M7400黑白激光多功能打印一体机加粉后清零方法: 吴中函 加粉后,确保硒鼓已经被正确安装并且机器已经通电。 1、打开前盖,以便进行后续的操作。 2、按下“清除/返回”键,这会触发一个屏幕提示:提示内容为“更换…

flex + margin 妙用

利用 flex margin 分配间距,简单案例如下,先写一个包裹器,包裹几个元素: 案例一: 我们给父元素加 flex 布局,子元素加 margin: auto,可以看到子元素上下左右居中显示,当前我们可以…

python包chromadb安装失败总结

1,背景: 最近在学习langchain的课程,里面创建自己的知识库的Retrieval模块中,需要用到向量数据库。 所以按照官方的教程(vectorstores),准备使用chroma的向量数据库。图片来源 2,问…

C# 反射 入门到详解

1.什么是反射 首先看一张流程图 反射最最要的关注的地方 就在metadata 元数据 元数据:描述DLL/EXE文件中有什么内容 点击生成之后,就会在文件中生成DLL/EXE文件 点击打开文件夹 在bin/Debug 文件下就会生成该文件 exe/dll文件的区别:…

DRF从入门到精通九(权限控制)

文章目录 一、权限控制模型1) ACL(Access Control List,访问控制列表)2) RBAC(Role-Based Access Control,基于角色的访问控制)应用前后台权限控制实操 3) ABAC(Attribute-Based Access Control,基于属性的访问控制) 一、权限控制模型 1) ACL(Access Control List,访问控制列表…

Transforer逐模块讲解

本文将按照transformer的结构图依次对各个模块进行讲解: 可以看一下模型的大致结构:主要有encode和decode两大部分组成,数据经过词embedding以及位置embedding得到encode的时输入数据 输入部分 embedding就是从原始数据中提取出单词或位置&…