次の表のようなものを返すselectクエリがあります。
開始| 停止| id ------------------ 0 | 100 | 1 1 | 101 | 1 2 | 102 | 1 2 | 102 | 2 5 | 105 | 1 7 | 107 | 2 ..。 300 | 400 | 1 370 | 470 | 1 450 | 550 | 1
ここで、stop = start + n; この場合、n=100です。
各IDのオーバーラップをマージしたいと思います。
開始| 停止| id ------------------ 0 | 105 | 1 2 | 107 | 2 ..。 300 | 550 | 1
開始300は停止105の後にあるため、id1は0〜550を与えません。
最初のクエリで返されるレコードは数十万になり、nは最大で数万になる可能性があるため、処理が高速であるほど優れています。
PostgreSQLを使用します。