私は次のような単純なテーブルを持っています:
ClientID ItemID
1 1
1 2
1 3
2 1
2 2
3 3
4 3
5 1
5 2
5 4
5 5
ここで、両方の列が組み合わされて主キーになります。私は今、ClientIDに割り当てられたItemIDのすべての一意のセットを識別することを任されています。したがって、私の例では、セットは次のようになります。
ItemIDs 1,2,3 (used by ClientID 1)
ItemIDs 1,2 (used by ClientID 2)
ItemIDs 3 (used by ClientIDs 3 and 4)
ItemIDs 1,2,4,5 (used by ClientID 5)
理想的には、出力は2つのテーブルになります。
SetID ItemID
1 1
1 2
1 3
2 1
2 2
3 3
4 1
4 2
4 4
4 5
ClientID SetID
1 1
2 2
3 3
4 3
5 4
ここで、SetIDは他の場所で使用するための新しいフィールドになります。
現在、一意のセットを識別する方法では、カーソルを使用して各ClientIDの順序付けられたItemIDの文字列を作成し、出力を比較して一意の文字列を取得し、最後に解析し直します。書くのに十分な速さでしたが、ひどい気分です。
これよりも良い方法があるに違いないと思います。何か案は?