私はMicrosoftのSQL Server 2008を使用しています。ランダムに1つの値を取得するために外部キーを集計する必要がありますが、私は困惑しています。以下の表を考慮する:ランダムに集計しますか?
id fk val
----------- ----------- ----
1 100 abc
2 101 def
3 102 ghi
4 102 jkl
所望の結果は次のようになります。FK 102用valがランダムになり
fk val
----------- ----
100 abc
101 def
102 ghi
いずれかの "GHI" 又は "JKL"。
NEWID()を使用して一意のランダム値を取得しようとしましたが、サブクエリによってNEWID()値が異なるため、JOINは失敗します。
WITH withTable AS (
SELECT id, fk, val, CAST(NEWID() AS CHAR(36)) random
FROM exampleTable
)
SELECT t1.fk, t1.val
FROM withTable t1
JOIN (
SELECT fk, MAX(random) random
FROM withTable
GROUP BY fk
) t2 ON t2.random = t1.random
;
私は困惑しています。どんなアイデアでも大歓迎です。
@ypercube:ポストの最初の文で言及されました... –