1

次のようなテーブルがあります。

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 を結合する必要があります。この大きな連鎖は永遠に続くようです。

どんな提案でも大歓迎です。

ありがとう

4

1 に答える 1