次のようなテーブルがあります。
GroupID ID Name Address AAA BBB CCC Other Columns
1 00111 AAA ----- --- --- --- ------------
1 00122 BBB ----- --- --- --- ------------
1 00133 CCC ----- --- --- --- ------------
2 00144 DDD ----- --- --- --- ------------
2 00155 EEE ----- --- --- --- ------------
3 00111 AAA ----- --- --- --- ------------
3 00177 GGG ----- --- --- --- ------------
4 00188 PPP ----- --- --- --- ------------
4 00199 OOO ----- --- --- --- ------------
4 00177 GGG ----- --- --- --- ------------
したがって、基本的にすべてのレコードが同じグループ ID を持つ場合、レコードが重複する可能性があります。同じ ID を持つレコードが異なるグループに表示される場合があります。に基づいてそれらを再グループ化しID
、テーブルに一度だけ表示する必要があります。
がグループ 1 とグループ 3 にある場合ID'00111'
、2 つのグループのレコードを再グループ化し、一意の GroupID を持つ必要があります。ID '00177'
グループ 3はグループ 4 にも含まれているため、グループ 3 と 4 は再グループ化する必要があることに注意してください。
したがって、結果は次のようになります。
GroupID ID Name Address AAA BBB CCC Other Columns
1+3+4 00111 AAA ----- --- --- --- ------------
1+3+4 00122 BBB ----- --- --- --- ------------
1+3+4 00133 CCC ----- --- --- --- ------------
1+3+4 00177 GGG ----- --- --- --- ------------
1+3+4 00188 PPP ----- --- --- --- ------------
1+3+4 00199 OOO ----- --- --- --- ------------
2 00144 DDD ----- --- --- --- ------------
2 00155 EEE ----- --- --- --- ------------
これは難しく、このテーブルには 300 万を超えるレコードがありますが、一意の ID は 200 万しかありません。Master Group ID
レコードにフラグを立ててマージするために、もう1列追加することを考えています。ただし、提供されている例のように'00111'
、グループ 1 と 3 にあるため、グループ 1 と 3 を結合する必要がありますが、グループ 3 では、他のレコード'00177'
がグループ 4 に表示されるため、グループ 1、3 および 4 を結合する必要があります。この大きな連鎖は永遠に続くようです。
どんな提案でも大歓迎です。
ありがとう