ホームページ >データベース >mysql チュートリアル >SQL Server 2005 を使用してカテゴリごとの上位 10 レコードを取得するにはどうすればよいですか?

SQL Server 2005 を使用してカテゴリごとの上位 10 レコードを取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-21 06:06:08946ブラウズ

How to Retrieve the Top 10 Records per Category Using SQL Server 2005?

SQL Server 2005 のカテゴリごとの上位 10 レコードの抽出

このガイドでは、単一の SQL Server 2005 クエリを使用して各カテゴリの上位 10 レコードを効率的に取得する方法を説明します。

解決策は次のとおりです:

<code class="language-sql">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</code>

このクエリは、RANK() 関数を使用して、RankCriteria (ランキング順序を定義する列) に基づいてカテゴリ内の各レコードにランクを割り当てます。 PARTITION BY Section 句は、各カテゴリ内での独立したランキングを保証します。 RANK() は、最高ランクのレコードの 1 から始まる連続ランクを割り当てます。

WHERE Rank <= 10 句は結果をフィルターし、出力を各カテゴリの上位 10 レコードに制限します。 RankCriteria にタイが存在する場合、1 つのカテゴリに対して 10 を超えるレコードが返される可能性があることを覚えておくことが重要です。

以上がSQL Server 2005 を使用してカテゴリごとの上位 10 レコードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。