2017-08-14 6 views
-4

カラムAには10個のユニークな値があり、カラムBには1つ以上の異なるユニークな値を持ち、最後にはカラムCの量のカラムIがあります。列Aの10個の一意の値のそれぞれをループし、列Aの各値の列Bの上位10個の値のみを返します(列Cを使用して上位の値を決定します)。列Bを参照してください。T SQLはトップ10のループを選択します

SQLでこれを書き込む最も簡単な方法は何ですか?

+0

こんにちは。あなたがこの問題を解決しようとしたことを示していない限り、誰もあなたのために書くつもりはありません。 – Nipun

答えて

1

ループとSQLを考えているなら、間違った場所を探しているでしょう。ループを回避し、より速く実行し、書込みや保守が簡単なセットベースのクエリを書く方法は、常にほとんどありません。ケーススタディ:

SELECT t1.[A], t2.[B], t2.[C] 
FROM (SELECT DISTINCT [A] FROM [table]) t1 
CROSS APPLY 
(
    SELECT TOP 10 [B], [C] FROM [Table] t0 WHERE t0.[A] = t1.[A] ORDER BY [C] DESC 
) t2 
関連する問題