ORACLE機能 ORACLE関数

[ORACLE関数] グループ単位にレコードに順番を付ける(ROW_NUMBER~PARTITION)

投稿日:

検索結果をグループ単位で順位を飛ばさずに順位を付けるには、ROW_NUMBER~PARTITION BY句を使用します。

順位を飛ばさずとは、同値が存在した場合でも次の順位は連番になるという事です。

ROW_NUMBER~PARTITIONでは、同じ値で同順となった場合でも連番が降られます。

サンプル

例)class列単位にscore列の降順で順位を付ける

【m_user】
NAMECLASSSCORE
AさんX60
BさんX70
CさんY80
DさんY70
EさんZ50
FさんX60
GさんX50

検索結果

SQL*Plus
RANKING NAME CLASS SCORE -------- --------- ------- -------- 1 Bさん X 70 2 Aさん X 60 3 Fさん X 60 4 Gさん X 50 1 Cさん Y 80 2 Dさん Y 70 1 Eさん Z 50

CLASS列単位に順位が付きます。AさんFさんは同じscoreですが同順とはならず連番になります。続くGさんも連番になります。

備考

  • 同率同順の場合は同じ順位にしたり、同率同順の次の順位は飛び番としたりしたい場合は、下記関連ページをご覧ください。

関連ページ


スポンサーリンク

スポンサーリンク

-ORACLE機能, ORACLE関数
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

ORACLE

[ORACLE] ネットワークの接続テストを行う(tnsping)

オラクルの接続文字列が正しくネットワーク接続できるかどうか確認するには、 tnspingコマンドを使用します。 構文 ( ...
ORACLE

[SQL*Plus] 検索結果の表示を1ページ毎にストップさせる(set pause)

検索結果の表示を1ページ毎にストップさせるには、set pauseを使用します。 構文 ストップさせる場合はon、ストッ ...
ORACLE

[ORACLE] ソート順をランダムに検索する

検索する毎に異なるソート順で結果を返すサンプルSQLです。 サンプル 例)M_USERテーブルからソート順をランダムに検 ...
ORACLE

[SQL] 内部結合で結合する(INNER JOIN)

内部結合で結合するには、INNER JOIN句を使用します。 構文 (内部結合構文) テーブルA INNER JOIN ...
ORACLE

[ORACLE] テーブル列定義とコメントを表示する

テーブル列定義とコメントを表示するSQLです。 サンプル 例)テーブル「M_USER」の列定義とコメントを表示する [c ...

スポンサーリンク