ホームページ >データベース >SQL >SQLでのランクの使用法

SQLでのランクの使用法

下次还敢
下次还敢オリジナル
2024-05-02 02:30:251181ブラウズ

SQL の RANK 関数は、指定された列で並べ替えた後に行をランク付けし、結果セットは 1 から始まる各行のランク付けを返します。同じ値は同じランク付けになります。パーティション式はパーティション列を指定でき、ランキングは各パーティション内でのみ実行され、ソート式はソート列を指定し、ランキングはこの列内のデータの順序に従って決定されます。

SQLでのランクの使用法

SQL での RANK 関数の使用

RANK 関数は、指定された列に基づいて行のセットをランク付けするために使用されます。データの順序。これは、集計された結果セット内の各行のランクを返す集計関数です。

構文

<code>RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)</code>

パラメータ

  • partition_expression: オプションで、パーティション列を指定します。 。指定した場合、ランキングは各パーティション内でのみ実行されます。
  • order_expression: 並べ替え列を指定します。行は、この列のデータの順序に基づいてランク付けされます。

戻り値

RANK 関数は、各行のランキングを表す整数を返します。ランキングは 1 から始まり、最初の行が最高のランクとなります。複数の行が同じ値を持つ場合、それらの行は同じランクになります。

<code class="sql">SELECT department_id, employee_name, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employee_table;</code>

結果

<code>department_id | employee_name | rank
------------- | ------------- | ----
1             | John Smith    | 1
1             | Jane Doe      | 2
2             | Peter Parker  | 1
2             | Mary Johnson | 2</code>

この例では、employee_table #の # を押します。 #Department_id salary の降順でパーティション化して並べ替えます。部門ごとに、従業員は給与に基づいてランク付けされます。

    パーティション式が指定されていない場合、ランキングはテーブル全体で実行されます。
  • RANK 関数は重複値に敏感です。複数の行が同じ値を持つ場合、それらの行は同じランクになります。
  • RANK 関数は DENSE_RANK 関数に似ていますが、DENSE_RANK 関数は重複値のランキングをスキップしません。

以上がSQLでのランクの使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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