1.my sql数据库中,数据按每秒一次存储,但由于故障,导致数小时才恢复
2.需要用sql查出哪些机出现了该故障,即哪些机不是按每秒一次存储
3.存储时间字段名称为CreateDate
查询mysql秒数间隔大于1的记录
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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;
这个查询做了以下几步:
- 使用
LAG
函数获取每个机器的前一条记录的CreateDate
。 - 使用
TIMESTAMPDIFF
函数计算当前记录与前一条记录之间的时间差(以秒为单位)。 - 如果时间差大于1秒,则在
GapsDetected
中计数。 - 最后,通过
GROUP BY
对机器ID进行分组,并使用HAVING
子句筛选出至少有一次时间间隔大于一秒的机器。
请确保将
YourTableName
替换为你的实际表名。这个查询假设MachineID
是用于区分不同机器的字段,如果实际字段名不同,请相应替换。注意:这个查询假设
CreateDate
字段是按时间顺序排列的。如果数据没有排序,你可能需要在查询中添加一个ORDER BY CreateDate
子句。此外,这个查询可能需要根据你的具体数据库结构和索引进行优化以提高性能。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 - 使用
悬赏问题
- ¥15 网络分析设施点无法识别
- ¥15 状态图的并发态问题咨询
- ¥15 PFC3D,plot
- ¥15 VAE模型编程报错无法解决
- ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
- ¥15 物体组批优化问题-数学建模求解答
- ¥15 微信原生小程序tabBar编译报错
- ¥350 麦克风声源定位坐标不准
- ¥15 apifox与swagger使用
- ¥15 egg异步请求返回404的问题