You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询同ID同类型且创建时间间隔小于3分钟的记录

符合要求的SQL查询实现

核心思路

  • 按ID和TYPE分组,对同组内的记录按CREATED_TIME排序
  • 计算同组内相邻两条记录的时间间隔
  • 筛选出存在至少一组间隔小于3分钟的ID,去重后返回结果

推荐方案(窗口函数实现,性能更优)

以下为通用写法,时间差计算部分可根据你使用的数据库做对应调整:

SELECT DISTINCT ID
FROM (
    SELECT
        ID,
        TYPE,
        CREATED_TIME,
        -- 取同ID、同TYPE分组内上一条记录的创建时间
        LAG(CREATED_TIME) OVER (PARTITION BY ID, TYPE ORDER BY CREATED_TIME) AS prev_time
    FROM 你的实际表名
) temp
WHERE 
    prev_time IS NOT NULL
    -- 以下时间差判断根据数据库类型替换
    AND TIMESTAMPDIFF(MINUTE, prev_time, CREATED_TIME) < 3;

不同数据库的时间差语法适配:

  • MySQL:保持上面的TIMESTAMPDIFF写法即可
  • PostgreSQL:替换为EXTRACT(EPOCH FROM (CREATED_TIME - prev_time)) / 60 < 3
  • SQL Server:替换为DATEDIFF(MINUTE, prev_time, CREATED_TIME) < 3
  • Oracle:替换为(CREATED_TIME - prev_time) * 24 * 60 < 3

兼容方案(自连接实现,适配不支持窗口函数的数据库)

SELECT DISTINCT t1.ID
FROM 你的实际表名 t1
INNER JOIN 你的实际表名 t2
    ON t1.ID = t2.ID
    AND t1.TYPE = t2.TYPE
    AND t1.CREATED_TIME < t2.CREATED_TIME
-- 时间差判断同样根据数据库类型适配
WHERE TIMESTAMPDIFF(MINUTE, t1.CREATED_TIME, t2.CREATED_TIME) < 3;

内容的提问来源于stack exchange,提问作者yunus_rouhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:54:03