ホームページ  >  記事  >  データベース  >  SQLでrank(over()を使用する方法)

SQLでrank(over()を使用する方法)

下次还敢
下次还敢オリジナル
2024-05-09 07:42:18718ブラウズ

SQL の RANK() OVER() 関数は、データ レコードにランキング値を割り当てるために使用されます。ランク付けする列とソート順序を指定する ORDER BY 句を受け入れます。パラメータには、列名 (ランク付けされる列)、並べ替え順序 (昇順または降順)、および NULL 値の処理方法 (最初、最後、または非 NULL 値のみ) が含まれます。この関数は、同じ値を持つレコードに同じランクまたは一意のランクを割り当てるために使用され、NULL 値を除外または処理できます。

SQLでrank(over()を使用する方法)

RANK() OVER() SQL での使用法

RANK() OVER() 関数は、SQL でデータをランク付けし、各レコードにランキング値を割り当てるために使用されます。この関数は、ランク付けする列と並べ替え順序を指定する ORDER BY 句を受け入れます。

構文:

<code>RANK() OVER (ORDER BY 列名 [ASC|DESC] [NULLS FIRST|LAST|ONLY])</code>

パラメータ:

  • 列名: ランキングに参加する列を指定します。
  • ASC|DESC: ランキング順(昇順または降順)を指定します。
  • NULLS FIRST|LAST|ONLY: NULL 値の処理方法を指定します。

使用法:

RANK() OVER() 関数は、以下を含む、データに対してさまざまなタイプのランキングを実行するために使用されます。

  • 同じ値を持つレコードに同じランキングを割り当てる
  • 異なる値を持つレコードに一意性を割り当てる値のランキング
  • NULL 値を除外するか、NULL 値を最初/最後にランク付けします

例:

次の例では、「Score」列に基づいて、「Students」テーブル内のレコードを高いものから順にランク付けします。 low:

<code>SELECT *, RANK() OVER (ORDER BY 分数 DESC) AS 排名
FROM 学生;</code>

結果は以下の通りです:

学籍番号 名前 得点 順位
1 Xiao Ming 95 1
2 小华 90 2
3 シャオリ 85 3
4 シャオガン 80 4

メモ:

  • RANK () OVER() Return ランキング値は0ではなく1から始まります。
  • ランキングの基準となる列に同じ値を持つレコードが複数ある場合、これらのレコードには同じランキング値が割り当てられます。
  • NULL 値の場合、NULLS FIRST オプションは NULL 値を最初にランク付けし、NULLS LAST オプションは NULL 値を最後にランク付けし、NULLS ONLY オプションは非 NULL 値のみをランク付けします。

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

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