SQL Server

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

投稿日:2014/01/27 更新日:

SQLで順位を取得する

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

テーブルの準備

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

データの準備

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

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

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

以下が実行結果です。

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

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

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

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

以下が実行結果です。

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

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

以下が実行結果です。

当サイトのおすすめ記事

レンタルサーバー 1

当サイトは約5年間、さくらのレンタルサーバで運用させて頂きました。 何かトラブルがあったわけではないのですが、WordPressの表示速度を速くしたくてSSD搭載のレンタルサーバーで運用してみることに ...

プログラミング 2

SQLでIFを使わずに条件分岐する SQLでIFを書けばWHERE句の内容を変えて検索できますが、条件ごとに同じようなSQLを 複数回書くのは面倒なので、1行で分岐できないかと言う事でSQLを作って見 ...

SQLServer 3

SQLServerで発生するエラーコードをSQLで取得する SQLServerで発生したエラーコードの内容を メッセージが定義されているテーブルから取得します。 エラーコードを取得するSQL SQLs ...

4

SQLServerでテーブル型を戻り値とする関数を作る SQLServerではINT型やVARCHAR型などを返す関数と同様に ユーザー定義テーブル型を戻り値とする関数を作成できます。 テーブル型を戻 ...

5

アフィリエイトで即効成果を出す アフィリエイトで成果を出す、なかなか難しいですよね。 サイトをいくつも立ち上げてすでにコツをつかんでいる人なら チョチョイっとやっていけるんでしょうけど。 でも実際はこ ...

-SQL Server
-, ,

Copyright© ソフトウェア開発日記 , 2017 AllRights Reserved.