首页 > 解决方案 > 查找一组 n 个连续数字是否在 SQL 中重复

问题描述

我想知道一组 n 个连续数字是否针对特定分区重复。

假设我有deviceIds一些recordid值是连续的,设备生成的每条记录都增加 1。

所以我想知道是否recordid再次重置并重新生成具有相同序列的记录。让我们通过下表来了解。

Device ID        recordid             DateTime
--------------------------------------------------
07777778999       2               18-12-2016 17:15
07777778123       10              18-12-2016 18:10
07777778123       10              18-12-2016 18:20
07777778999       3               19-12-2016 19:30
07777778999       4               19-12-2016 12:15
07777778999       5               19-12-2016 13:15
07777778999       6               20-12-2016 11:15
07777778123       11               20-12-2016 9:15
07777778123       12               20-12-2016 17:15
07777778123       13               20-12-2016 17:25
07777778123       14               20-12-2016 17:35
07777778999       7                20-12-2016 17:45
07777778999       8               20-12-2016 17:55
07777778999       4               20-12-2016 18:50
07777778999       5               20-12-2016 18:55 
07777778999       6               20-12-2016 18:50
07777778999       7               20-12-2016 18:55
...

有很多设备,因此我们可以按设备对其进行分区,然后应用我们的查询来查找设备是否会重新生成数字,例如 07777778999,我们有记录 id 的 2、3、4、5、6、7、8 和然后数字从 4,5,6,7 等重新生成。

所以我想列出所有使用 SQL 重新生成的设备。所以上面的预期输出将是设备 07777778999

标签: mysqlsqlaggregationdata-analysis

解决方案


尝试这个。

这将返回所有具有重新生成值的记录。

SELECT DeviceID,RecordId
FROM ResultSet
GROUP BY DeviceID,RecordId
HAVING COUNT(1)>1;

推荐阅读