在 PostgreSQL 如何查询连续出现的记录
场景描述
我们有一个系统在不停接收其他系统发来的消息,我们的任务任务是查询连续出现两次及以上的消息。下面是一些例子
- 假设依次收到的消息是 A 则结果为空;
- 假设依次收到的消息是 AB 则结果为空;
- 假设依次收到的消息是 AA 则结果为 AA;
- 假设依次收到的消息是 AABB 则结果为 AABB;
- 假设依次收到的消息是 ABB 则结果为 BB;
- 假设依次收到的消息是 AAB 则结果为 AA;
- 假设依次收到的消息是 AABCC 则结果为 AACC;
- 假设依次收到的消息是 AABCDD 则结果为 AADD;
- 假设依次收到的消息是 AABAACC 则结果为 AAAACC;
- 假设依次收到的消息是 AABAABCC 则结果为 AAAACC;
- 假设依次收到的消息是 AABAACDD 则结果为 AAAADD;
- 假设依次收到的消息是 AABCCBDD 则结果为 AACCDD;