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

公開日: : SQL Server , ,

SQLで順位を取得する

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

テーブルの準備

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

データの準備

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

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

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

以下が実行結果です。

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

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

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

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

以下が実行結果です。

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

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

以下が実行結果です。

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

関連記事

SQLで大文字、小文字変換を行う

SQLで大文字⇔子文字変換を行う SQLで大文字⇔小文字変換を行うには「UPPER関数」と「LOW

記事を読む

CREATE TABLE,ALTER TABLEでテーブルのプライマリーキー(PK)を作成する

SQL ServerでSQLを使用してプライマリーキー(PK)を作成します。 テーブル作成時(

記事を読む

集計関数COUNT()でのNULLの扱い

集計関数COUNT()でのNULLの扱いは注意が必要 集計関数のCOUNT()は条件にマッチす

記事を読む

SQLServer上にあるストアドプロシージャーの更新日時を取得する。

ストアドプロシージャーの更新日時を取得する ここ数日間で変更されたSQLServer上にあるストア

記事を読む

列は既にデフォルトにバインドされています。

テーブルのカラムの属性変更でデフォルト値を変更する テーブルのカラムの属性変更でデフォルト値を変更

記事を読む

データベースに登録されている内容を固定長のファイルに出力する(1)

登録されている内容を固定長で出力 データベースに登録されている内容を固定長のファイルに 出力する

記事を読む

SQLServerでsp_renameを使ってテーブルの列名を変更する

SQLServerで列名を変更するには sp_renameを使って列名を変更 SQLServ

記事を読む

SQLServerで作ったテンポラリテーブルが見つからず無効になってしまう

SQLServerでテンポラリテーブルを利用して処理を行う時に 「オブジェクト名 '#tmp_ta

記事を読む

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

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

記事を読む

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

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

記事を読む

Message

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


*

SQLServer
SQLServerで累積値(累積比)を求める

SQLServerで累積値(累積比)を求める SQLServer

Transact-SQLで動的にSQLを編集してカーソルを使用する

2時間もハマったのでメモ書きとして記述します。 Transact

「INNER JOIN」「LEFT OUTER JOIN」「RIGHT OUTER JOIN」「FULL OUTER JOIN」についてまとめ

SQLで良く使うJOINについて SQLでよく使う「INNER

SQLでCASE~WHENを使ってみる

SQLでCASE~WHENを使う SQLでCASE~WHENを使うと

GROUP BYとHAVINGで最新日付データを取得する

GROUP BYとHAVINGで最新日付データを取得する 社員マスタ

→もっと見る



PAGE TOP ↑