需要のスコアランキング、無間隔でランキング順位付けながら、同じランクとみなさ同じスコアランキングがあります。
テーブルを作成します。
CREATE TABLEの結果を ( ID INT PRIMARY KEY IDENTITY 、 スコアVARCHAR(20 ) )
次のデータを挿入します。
最初のアイデアは考えることです
1.パケット順序
パケットの後2.左側のリンクをソートするために元のテーブルとテーブルを並べ替え
コードは以下の通りであります:
WITH TEMP AS ( SELECT ROW_NUMBER()OVER(ORDER BYスコアDESCを)ランク、スコアからの結果GROUP BY スコア) SELECT順位、result.score FROM 一時 LEFT JOIN結果に result.score = TEMP .score ORDER BYスコアDESC
結果は
後すなわちDENSE_RANKで、より便利な方法であることが見出され、以下のように、この関数は、目的を選別することによって達成することができます。
選択スコア、DENSE_RANK()OVER(順序 によってスコアDESC)としてランクから結果
次のように上記との結果が、そこに一種のあるランク機能の裏へのアクセスですが、間隔でランク付けされる結果のランキングをチェックアウト:
SELECTスコア、RANK()OVER(ORDER BYスコアDESC)AS RANK FROM結果
支離滅裂ランキングのランキング結果は以下の通りであります: