複合グループ ID (つまり、GroupID = Col1 + Col2 + Col3) で構成される複数のグループのレコードを含む SQL Server 2008 テーブルがあり、これらの各グループをランダムにコントロール グループに分割し、Col1 のみの値を再割り当てする必要があります。各グループの 1 つは元のグループに残り、半分は新しいグループに配置されます。各 Col2 + Col3 グループを手動で処理する必要がないように、単一のステートメントでこれを行うにはどうすればよいですか?
言い換えれば、私はこのようなことをしたいと思います:
UPDATE dbo.DM_Main
SET PkgPt1 = 'CD2'
WHERE ID IN (
SELECT TOP 50 PERCENT ID
FROM dbo.DM_Main
WHERE PkgPt1 = 'CD1'
GROUP BY PkgPt2, PkgPt3 -- obviously this line won't work
ORDER BY NEWID()
)