ホームページ > データベース > mysql チュートリアル > SQL で複数のカテゴリにわたる上位 N レコードを効率的にクエリする方法

SQL で複数のカテゴリにわたる上位 N レコードを効率的にクエリする方法

Susan Sarandon
リリース: 2025-01-21 06:11:08
オリジナル
501 人が閲覧しました

How to Efficiently Query Top N Records Across Multiple Categories in SQL?

SQL で複数のカテゴリから上位 N レコードを取得する

この SQL 手法は、単一のテーブル内のさまざまなカテゴリから上位 N 件のレコード (上位 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>
ログイン後にコピー

説明:

  • Field1 および Field2: これらは取得する列を表します。
  • 内部の SELECT ステートメントは RANK() ウィンドウ関数を使用します。 PARTITION BY Section は、「セクション」カテゴリに基づいてデータをグループに分割します。 ORDER BY RankCriteria DESC は、各セクション内のレコードをランキング基準に従って降順に並べ替えます。 Rank は、そのセクション内の各レコードにランクを割り当てます。
  • 外側の SELECT ステートメントは結果をフィルターし、Rank 値が 10 以下 (Rank <= 10) のレコードのみを保持します。

この方法は効率的であり、専用の行制限機能がないデータベース システムでも機能します。 パフォーマンスが重要な場合に最適です。

以上がSQL で複数のカテゴリにわたる上位 N レコードを効率的にクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート