私はテーブルを持っています
名前スコア サマール 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
上記のコードの何が問題なのか教えてください。