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

スポンサーリンク

SQLで順位を取得する

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

テーブルの準備

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

データの準備

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

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

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

以下が実行結果です。

得点の高い順に並んでいます。

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

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

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

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

以下が実行結果です。

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

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

以下が実行結果です。

RANK()とDENSE_RANK()を使えばグルー内での順位が簡単に取得することができます。

以上、SQLで順位を取得するRANK()とDENSE_RANK()でした。

SQL Server
スポンサーリンク
色白おばけをフォローする

おすすめプログラミングスクール

「侍エンジニア塾」は、未経験者でも結果が出せるプログラミング学習サービスです。
専属のインストラクターとの対面かSkypeでのレッスンを通じてプログラミングスキルを身につけて頂き、就職や転職までサポートします。
「侍エンジニア塾」の『3つ』の大きな特徴

  1. 完全マンツーマンレッスン
  2. フルオーダーメイドカリキュラム作成
  3. 独立・起業・フリーランス支援

誰もが自分の技術で稼げる人材になるための教育プログラム
TECH::EXPERTのこだわりは「実務的な教育コンテンツ」と「徹底したサポート体制」の2つです。

  1. 現場で使える実践的な技術が身につく
    有名企業のエンジニアへヒアリングを重ね、1年かけて創り上げた教育プログラムがあなたを実務レベルの即戦力エンジニアへ高めます
  2. 学習方法はライフスタイルに合わせて学べます
    ・一気にエンジニアへ駆け上がる「短期集中スタイル」
    ・無理なく確実にエンジニアへ「週末集中スタイル」
    ・自分のペースで自由に学ぶ「オンラインスタイル」

TECH::CAMP(エンジニアスクール)。
【Webアプリケーションコース】
全くの未経験からWebアプリケーション開発に必要なスキルを全て学ぶことができます。
【iPhoneアプリコース】
全くの未経験から最新の開発言語Swiftを用いてiPhoneアプリ開発を学ぶことができます。
自分だけのiPhoneアプリつくって世界に向けてリリースしたい方には自信を持っておすすめできる内容です。

ソフトウェア開発日記
タイトルとURLをコピーしました