各カテゴリの上位10件のレコードを選択する 質問する

各カテゴリの上位10件のレコードを選択する 質問する

1 つのクエリで各セクションから上位 10 件のレコードを返したいのですが、その方法について誰か教えてくれませんか? セクションはテーブル内の列の 1 つです。

データベースは SQL Server 2005 です。入力された日付で上位 10 件を返します。セクションは、ビジネス、ローカル、および機能です。特定の日付については、上位 (10) のビジネス行 (最新のエントリ)、上位 (10) のローカル行、および上位 (10) の機能のみが必要です。

ベストアンサー1

SQL 2005 を使用している場合は、次のようにすることができます...

SELECT rs.Field1,rs.Field2 
    FROM (
        SELECT Field1,Field2, Rank() 
          over (Partition BY Section
                ORDER BY RankCriteria DESC ) AS Rank
        FROM table
        ) rs WHERE Rank <= 10

RankCriteria に同点がある場合は、10 行以上が返される可能性があり、Matt のソリューションの方が適している可能性があります。

おすすめ記事