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

関連記事

SQLServerでカンマ区切り (CSV) で文字列取得

SQLの取得結果をカンマ区切りで取得 Where句のINにSQLで取得した結果を直接利用したり

記事を読む

ISNULLとCOALESCEは動作が異なる

ISNULLとCOALESCEは動作が異なるので注意が必要 とある人が作成したSQLを見ているとC

記事を読む

SQLServerのバージョン番号を取得する方法

SQLServerのバージョン番号を取得する SQLServerのバージョン番号は「@@VERSI

記事を読む

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

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

記事を読む

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

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

記事を読む

SQLで改行コードを含む項目を取得する

SQLで改行コードを含む項目を検索する Microsoft SQL Server Managemn

記事を読む

2つのテーブルを結合して値を更新するSQL

2つのテーブルを結合して値を更新するSQL テーブルAの値をテーブルBの値で上書き(更新)するSQ

記事を読む

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

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

記事を読む

ストアドプロシジャ内で例外エラーが発生した行番号を取得する。

例外エラーが発生した行番号を取得する SQLServerのストアドプロシジャ内で例外エラーが発

記事を読む

Transact-SQLで日本語を(2バイト文字)を含むデータの扱い

Transact-SQLで日本語を(2バイト文字)を含むデータをそのままSUBSTRING()すると

記事を読む

Message

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


*

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

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

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

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

SQL Server2008で導入された[date/time/datetime2/datetimeoffset]型

SQL Server2008では新しい日付/時刻データ型 date/

0で埋めで固定長のデータにする

0で埋めで固定長のデータにする データべース内のデータを0埋めして取

SQLServerのSQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得する

このページはSQL_VARIANT_PROPERTYを使ってカラムの基

→もっと見る



PAGE TOP ↑