stevenjin 2024-08-07 09:58 采纳率: 97.3%
浏览 8
已结题

查询mysql秒数间隔大于1的记录

1.my sql数据库中,数据按每秒一次存储,但由于故障,导致数小时才恢复
2.需要用sql查出哪些机出现了该故障,即哪些机不是按每秒一次存储
3.存储时间字段名称为CreateDate

  • 写回答

1条回答 默认 最新

  • m0_74303884 2024-08-07 10:52
    关注

    要找出哪些机器没有按每秒一次存储数据,我们需要检查CreateDate字段,找出时间间隔大于一秒的记录。这通常涉及到比较连续记录之间的时间差。以下是一个可能的SQL查询示例,用于找出不符合每秒存储一次的机器:

    SELECT 
        MachineID,
        COUNT(*) AS TotalRecords,
        SUM(CASE WHEN TIMESTAMPDIFF(SECOND, LAG(CreateDate) OVER (PARTITION BY MachineID ORDER BY CreateDate), CreateDate) > 1 THEN 1 ELSE 0 END) AS GapsDetected
    FROM 
        YourTableName
    GROUP BY 
        MachineID
    HAVING 
        GapsDetected > 0;
    

    这个查询做了以下几步:

    1. 使用LAG函数获取每个机器的前一条记录的CreateDate
    2. 使用TIMESTAMPDIFF函数计算当前记录与前一条记录之间的时间差(以秒为单位)。
    3. 如果时间差大于1秒,则在GapsDetected中计数。
    4. 最后,通过GROUP BY对机器ID进行分组,并使用HAVING子句筛选出至少有一次时间间隔大于一秒的机器。

    请确保将YourTableName替换为你的实际表名。这个查询假设MachineID是用于区分不同机器的字段,如果实际字段名不同,请相应替换。

    注意:这个查询假设CreateDate字段是按时间顺序排列的。如果数据没有排序,你可能需要在查询中添加一个ORDER BY CreateDate子句。此外,这个查询可能需要根据你的具体数据库结构和索引进行优化以提高性能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题