私はオンライン質問アプリケーションに取り組んでいます。
データベースからレコードをフェッチしています。
10セットで1000問出題しSQL database
ています。つまり、各セットには 100 の質問が含まれています。各セットからランダムに 20 問ずつ取るにはどうすればよいですか? 各セットから (要求に応じて) 2 つのランダムな質問を選択するにはどうすればよいですか?
私はオンライン質問アプリケーションに取り組んでいます。
データベースからレコードをフェッチしています。
10セットで1000問出題しSQL database
ています。つまり、各セットには 100 の質問が含まれています。各セットからランダムに 20 問ずつ取るにはどうすればよいですか? 各セットから (要求に応じて) 2 つのランダムな質問を選択するにはどうすればよいですか?
各グループから20 のランダムな質問を取得する必要がある場合は、SQLFiddle の例を次に示します。SetNum
ここにセットIDがあります
select * from
(
select t.*,
ROW_NUMBER()
over (partition by setNum order by NewId()) rNum from t
) t2 where rNum<=20
2
各セットからランダムな質問が必要な場合は、これを試してください...
SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 1) ORDER By NEWID()
UNION
SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 2) ORDER By NEWID()
UNION
.
.
.
.
UNION
SELECT TOP 2 * FROM (SELECT * FROM [YourTable] WHERE SET_ID = 10) ORDER By NEWID()