MySQL查询相邻两条记录的时间间隔

MySQL查询相邻两条记录的时间间隔。最近需要统计相邻两条记录的时间间隔,筛选出时间间隔大于2min的数据记录。因为是同一张表,又需要查询出相邻的数据,所以最开始想到使用子表来做,分别用t1t2表示,但是实践后发现查询时间太久了,因为这张表是一张数据量很大的表,用子查询去查就更慢了,所以需要换个思路去做,想到了LEAD开窗函数

ps:为什么要用开窗函数,因为这些函数是官方提供的,所以一般都是有做过优化的,性能一般是可以接受的

实验环境

  • MySQL8.0.26
  • Navicat15.0.28

ps:LEAD函数需要MySQL8.0+版本才支持

实验步骤

这里需要一些MySQL函数支持

  • IMESTAMPDIFF函数:IMESTAMPDIFF函数用来计算两个DATE或DATETIME值之间的差值,语法TIMESTAMPDIFF(unit,begin,end);,其中unit参数可以是MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEAR
  • LEAD函数:LEAD函数是一个窗口函数,LEAD函数需要MySQL8.0+版本才支持,语法是LEAD(expr [, N[, default]] over(partition by order by ),LEAD函数会返回分区内当前行后边N行字段的数值(如果N不设置,就默认为1),如果没有这样的行,会返回你设置的default (如果default省略了,则默认为 null),与LEAD函数相反的函数是LAG函数,LAG函数是返回前面N行字段的数值

所以,查询打卡流水,前一条记录与后面一条记录的打卡间隔就可以这样查询:

SELECT
	device_id AS '设备号',
  create_time AS '上报时间',
	TIMESTAMPDIFF(
		MINUTE,
		create_time,
		LEAD (create_time) OVER (

			ORDER BY
				device_id,
				create_time
		)
	) AS '时间间隔'
FROM
	t_user_atten_record
WHERE
com_id = 111168
AND create_time >= '2024-05-13'
AND create_time <= '2024-05-20'
ORDER BY
	device_id,
	create_time;

查询效果

通过SQL,就可以查询出这个设备的打卡时间间隔,可以用来分析定位问题

在这里插入图片描述

相关推荐

  1. SQLITE如何同时查询出第一和最后一记录

    2024-06-07 23:06:02       58 阅读
  2. sql server 查询所有表记录

    2024-06-07 23:06:02       55 阅读
  3. 记录递归查询子孙节点sql

    2024-06-07 23:06:02       41 阅读
  4. TIPS:MySQL按给定时间间隔分组统计

    2024-06-07 23:06:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 23:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 23:06:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 23:06:02       82 阅读
  4. Python语言-面向对象

    2024-06-07 23:06:02       91 阅读

热门阅读

  1. 51.线程池大小

    2024-06-07 23:06:02       28 阅读
  2. Switch刷机:安装Android系统和Linux系统

    2024-06-07 23:06:02       131 阅读
  3. 【微信小程序】处理蓝牙数据相关函数

    2024-06-07 23:06:02       31 阅读
  4. 聊聊App在安卓设备中所使用的内存

    2024-06-07 23:06:02       33 阅读
  5. 【考研数学】李艳芳900比李林880难吗 更值得做吗

    2024-06-07 23:06:02       25 阅读
  6. 【debian】常用指令

    2024-06-07 23:06:02       33 阅读
  7. 2024全国高考作文题解读(Chat GPT 4.0版本)

    2024-06-07 23:06:02       26 阅读
  8. 使用Python的xml.etree.ElementTree模块解析XML文件

    2024-06-07 23:06:02       31 阅读