SQL Server 2008では、DENSE_RANKを認識します

需要のスコアランキング、無間隔でランキング順位付けながら、同じランクとみなさ同じスコアランキングがあります。

テーブルを作成します。

CREATE  TABLEの結果を
ID INT  PRIMARY  KEY  IDENTITY 
スコアVARCHAR20 

次のデータを挿入します。

最初のアイデアは考えることです

1.パケット順序

パケットの後2.左側のリンクをソートするために元のテーブルとテーブルを並べ替え

コードは以下の通りであります:

WITH  TEMP  AS SELECT ROW_NUMBER()OVERORDER  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()OVERORDER  BYスコアDESCAS RANK FROM結果

支離滅裂ランキングのランキング結果は以下の通りであります:

 

おすすめ

転載: www.cnblogs.com/97310ZT/p/10974593.html