基本簡介
返回結果集分區内指定字段的值的排名,指定字段的值的排名是相關行之前的排名加一。
參數信息
partition_by_clause将from子句生成的結果集劃分為應用到RANK函數的分區。
Order_by_clause确定将RANK值應用到分區中的行時所使用的順序。
SQL示例
以下用一個成績表作示例
table架構
s_score(s_class(班級),s_id(學号),s_score(分數))
SQLstatement1:
Selectrank()over(orderbys_scoredesc)as名次,s_class,s_id,s_scorefroms_score
結果集如下
名次s_classs_ids_score
1二班S20090733100
2一班S2009063599
3三班S2009091997
4一班S2009084696
5一班S2009082595
6二班S2009071594
7三班S2009083691
8二班S2009063186
SQLstatement2:
Selectrank()over(partitionbys_classorderbys_scoredesc)as名次,s_class,s_id,s_scorefroms_score
結果集如下
名次s_classs_ids_score
1三班S2009091997
2三班S2009083691
1二班S20090733100
2二班S2009071594
3二班S2009063186
1一班S2009063599
2一班S2009084696
3一班S2009082595
EXCEL示例
再舉列一個比較簡單的,這樣子更容易看明白:
假如A列從A1單元格起,依次有數據80、98、65、79、65。
在B1中編輯公式
=RANK(A1,$A$1:$A$5,0)
回車确認後,向下複制公式到B5單元格。
效果:
從B1單元格起依次返回值為2、1、4、3、4。
注意:
公式中的參數0(零)或省略,Excel對數字的排位是把數據從大到小的降序排列,也就是說數值最大的排名第1。
再試試看:
在C1中編輯公式
=RANK(A1,$A$1:$A$5,1)
回車确認後,向下複制公式到B5單元格。
此時從C1單元格起依次返回的值是4、5、1、3、1。
也就是說,此時A列中數據是按從小到大排列名次的,最小的數值排位第1,最大的數值排位最末
【如何使用RANK平均的等級值為限制的觀察值】
将數字數據轉換為秩時,可能要用于表示紮以便限制的觀察每個接收的平均等級上的最小可能的秩而不是所有此類的觀察值。在這篇文章中數值的示例闡釋這一點。
雖然當前版本的RANK返回相應的結果對于大多數情況下,本文讨論了一個領帶發生這種情況。例如對于您可能需要處理紮,如果您正在使用非參數化的統計假設測試涉及秩的RANK。
ExcelRANK幫助
本文介紹的方法,還會介紹MicrosoftOfficeExcel2003和更高版本的ExcelRANK幫助文件中(但不是在更早版本的RANK幫助文件中)。此過程同樣适用于所有版本的Excel。RANK函數本身不變。
語法
RANK(number,ref,order)
注意Number必須有一個數字值;ref必須是一個數組或單元格區域包含數字數據值;是可選的order。如果省略order,或者将它分配一個值為0(零)number排位是數字的數字的在ref中number位置,如果ref數字的數字的按降序順序排序。如果order分配任何非零值,假定ref為排名按升序排序。
用法的示例
為了說明這種用法的RANK,創建一個空白Excel工作表、複制下表,選中您空白Excel工作表中的單元格A1,然後在編輯菜單上單擊粘貼,以便在下表中的項将填充工作表中的單元格A1:F12。
注意在MicrosoftOfficeExcel2007年粘貼命令是在開始選項卡上的剪貼闆組中。
注意您将此表粘貼到新的Excel工作表後,單擊粘貼選項按鈕,然後單擊匹配目标格式。
在Excel2003年的粘貼區域仍處于選中狀态的情況下使用指向格式菜單上的列,然後單擊列寬。
在Excel2007年的粘貼區域仍處于選定狀态在開始選項卡上的單元格組中單擊格式,然後單擊自動調整列寬。
某些用于您可能希望使用考慮重複的級别的定義。這樣做将以下的修正因素添加到返回的RANK值中。該修正因素是合适的降序計算排位的位置(order=0或省略)或按升序順序(order=非零值)。(COUNT(ref)+1–RANK(number,ref,0)–RANK(number,ref,1))/2.
在工作表說明了此級别的定義。數據是單元格A1:A12。在單元格B1:B12是按升序返回的RANK的秩。中的單元格A2:A5觀察常見值為21與相關聯。這将産生常見排位為2。沒有一個較低排名觀察,10。這些四個值的21占用的排名位置2、3、4和5并且有一個平均排位(2+3+4+5)/4=3.5。同樣,兩個的觀察值中的單元格A6:A7每33,有與低級别的五個觀察值。因此,這些兩個觀察值占用的排名位置6和7,并且有一個平均排位(6+7)/2=6.5。最後,三個的觀察值的單元格A8:A10中有一個公共值52。沒有與低級别的七個觀察值。因此,這些三個觀察值占用8、9和10的排名位置和具有的(8+9+10)的平均秩/3=9。
在C列中的項包含修正系數為限制的秩,并顯示這些平均秩紮考慮在内。在列B和C列中的值是完全相同的觀察不與其他的觀察說明如行1、11,和12依賴。
單元格E1:E12包含按降序順序返回的RANK的秩。有兩個條目具有較低的秩,比單元格A8:A10中的三個條目。單元格A8:A10具有一個公共值54。因此,這些三個項占用的排名位置3、4和5,并且有一個平均排位(3+4+5)/3=4。有兩個條目中的單元格A6:A7比的低級别的五個條目。單元格A6:A7具有一個公共值33。因此,這些兩個項占用排名位置6和7,并有一個平均排位(6+7)/2=6.5。有七個條目具有較低的秩,比單元格A2:A5中的四個條目。單元格A2:A5具有一個公共值21。因此,這些四個項占用排名的位置,8、9、10、11和平均值(8+9+10+11)的/4=9.5。
在F列中的項包含修正系數為限制的秩和顯示這些平均秩紮考慮在内。列E和F列中的值是完全相同的觀察不與其他的觀察說明如行1、11,和12依賴。
結論
本文介紹并說明了可用于限制秩排名數據時考慮了修正因素。您可以使用與RANK函數一起修正因素。修正因素效果同樣不錯秩何時按升序或降序排序。