【发布时间】:2020-03-22 15:39:28
【问题描述】:
我想知道一组 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
【问题讨论】:
-
你试过用左连接吗?
-
我没有得到这个 '07777778999,我们有记录 id's 2,3,4,5,6,7,8' 然后'数字是从 4,5,6,7 重新生成的' - 由于第二批没有开始 2,3 并且没有 8 你有什么逻辑说 07777778999 应该是预期的输出?难道仅仅是recordid被多次使用了吗?在这种情况下会包括 07777778123(但你说你不想要那个)?
-
是的,记录值按顺序重复。如果您看到 778123,它的 10,10,11,12,13,14 但对于 7778999,它的 2,3,4,5,6,7,8,4,5,6,7... 它继续在 7 之后有 8、9、10、11、12、13 等,基本上第一个序列停止,然后第二个序列从 4 开始并继续。它基本上是一个数据分析问题,我们试图识别记录 id 重新生成并将自身重置为某个值并启动的设备
-
我想知道提供更简单的数据集是否会丢失任何东西。例如,99 和 23 更简单。
标签: mysql sql aggregation data-analysis