SQLで順位を取得するRANK()とDENSE_RANK()

公開日: : SQL Server , ,

SQLで順位を取得する

SQLServerで項目の順位付け関数を利用して
順位をします。

テーブルの準備

学生のテスト結果を保持するテーブルを作成します。

データの準備

各クラスのテスト結果を登録します。

学年全部の得点順位を取得

まずは学年全体でのテスト結果順位を取得してみます。

以下が実行結果です。

得点の高い順に並んでいます。
RANK()関数は同じ順位があると「1,2,2,4…」というように
同じ順位は同位となり、次の順位は飛ぶことになります。

クラスごとの得点順位を取得

次にクラスごとテスト結果順位を取得してみます。

クラスごとにする場合は「PARTITION BY」を利用してクラスごとに
振り分けます。

以下が実行結果です。

順位が飛ばないDENSE_RANK()関数

RANK()関数と同じ順位付け関数にDENSE_RANK()がありますが
違いはこちらは同位があっても次の順位は飛びません。

以下が実行結果です。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 14 follow us in feedly

関連記事

no-img

SQL Server-テーブルのプライマリーキー(PK)を取得する

SQL ServerでSQLを使用してプライマリーキー(PK)を取得する必要があったので ちょっと

記事を読む

no-img

CASE WHENを使ってSQLでIF文を使わずに条件を分岐する

SQLでIFを使わずに条件分岐する SQLでIFを書けばWHERE句の内容を変えて検索できますが、

記事を読む

no-img

SQLで当月の第何週目の何曜日か取得する

SQLで今日は第何週、何曜日か取得する SQLServerでは関数で今日は当月の第何週目か取得する

記事を読む

SQLServer

SQLで検索結果を縦横変換する

SQLで検索結果を縦横変換する SQLで取得した各行を一定のくくりで横に表示させたいときがあります

記事を読む

no-img

SQL Server-登録されているストアドプロシジャーの一覧を取得する

データベースに登録されているストアドプロシジャーの 一覧を取得します。

記事を読む

SQLサーバ

連番中で 「歯抜け」の番号を見つけ出すSQL

テーブル内の連番の歯抜け番号を探す よくある処理でテーブルに設定されている連番の中で 「歯抜け」

記事を読む

SQLServer

テーブルに設定されているインデックスをSQLで検索する

テーブルに設定されているインデックスをSQLで検索 SQLServerでテーブルに設定されてい

記事を読む

a0001_013635

指定した列名がどのテーブルで使用されているか検索するSQL

指定した列名を利用しているテーブルを検索 SQLServerで指定した列名がどのテーブルで使用され

記事を読む

no-img

ALTER TABLE ADDでテーブルにカラムを追加する

SQL Serverでテーブルにカラムする SQL Serverでテーブルにカラムを追加します。

記事を読む

no-img

SQLで指定された年月日の月末日付を取得する

指定された年月日の月末日付を取得 SQLserverには指定された年月日の月末日付を取得する関

記事を読む

Message

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


*

SQLServer
SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更する方法です

SQLServerで取得した値を3ケタずつのカンマ区切りの表示に変更す

no-img
ORDER BYでNULLのカラムを最後に表示

ORDER BYでNULLのカラムを最後に持ってくる SQLで何も考

no-img
SQLServerのエラーコード一覧

SQLServerで発生するエラーコードとその内容を表にしてみました。

no-img
SQLServerでSQLを使ってテーブルのカラム名(項目名)を取得する

SQLでテーブルのカラム名(項目名)を取得 Oracleでは

keybord_black
テーブル型を戻り値とする関数の作成方法

SQLServerでテーブル型を戻り値とする関数を作る SQLSer

→もっと見る



PAGE TOP ↑