仮定 (高度に匿名化):
Create Table myTable
(
ID INT PK,
INDEXNUMBER INT,
VERSION INT,
Data VARCHAR(MAX)
)
このテーブルは、相互に排他的なデータを格納するために使用されます。例えば:
100 1 1 BOB
217 1 2 JOHN
319 1 3 GEORGE
420 7 1 MARY
415 7 2 SUSAN
この場合、BOB、JOHN、または GEORGE のいずれかと、MARY または SUSAN のいずれかをランダムに選択する必要があります。
INDEXNUMBER/VERSION
IDでもペアでもどちらでもいいです。
考えてみると、名簿を含むテーブルからホッケー チームの 1 つのシフトを選ぶようなものです。
利用可能な 3 つから 1 つのセンターを選択し、利用可能な 5 つから 1 つの左ウィングを選択するなど。
NEWID()
and MAX/MIN
(Cast NEWID
to first)で遊んでいますがvarchar
、 にハングアップし続けていGROUP BY
ます。IGROUP BY ID
の場合、 max は一度に 1 つの行で動作し、テーブル全体を生成します。
GROUP BY INDEXNUMBER, VERSION
同様の結果が得られた場合(ペアは一意です)。
私がする必要があるのは、 GROUP BY INDEXNUMBER
(クエリから完全に除外ID
して)まだ何らかの形でVERSION
.