0

金額でソートされた上位 100 件のレコードからランダムに 5 件のレコードを選択する必要があります。

これは 2 つのクエリに分割できますが、関数を作成せずにそれらを組み合わせる方法がわかりません (これは効率が悪いと考えています。

クエリ 1: Cars の価格順で上位 100 件を選択

クエリ 2: SELECT TOP 5 * FROM (クエリ 1) ORDER BY NEWID()

内部結合を使用するか、単に内部選択を使用するかに関係なく、これらを組み合わせる方法がわかりませんか?

私の最初の反応は、うまくいかないこれを試すことでした:

SELECT TOP 5 * FROM (SELECT TOP 100 * FROM Cars order by Price desc) ORDER BY NEWID()
4

1 に答える 1

2

サブクエリに名前を付ける必要があります。

SELECT TOP 5 * FROM (SELECT TOP 100 * FROM Cars order by Price desc) [A] ORDER BY NEWID()
于 2013-06-21T16:59:23.423 に答える