1

私はテーブルを持っています

名前スコア
サマール 12
プラディープ 30
ギャリー 90

上記の表から上位 2 つのスコアを取得したいと考えています。これはrow_number()関数によって行うことができます。ただし、クロス適用でも機能するはずです。しかし、私の以下のコードは、上位2つのスコアではなくすべての行を提供しています。

select abc.score
from #b as a
cross apply (
    select top 2 score
    from #b as 
    where b.name = a.name
    order by b.score desc
) as abc

上記のコードの何が問題なのか教えてください。

4

1 に答える 1