RANK 函式

計算經過排序的一組值在群組中的排名。相同的值會指派為相同的排名,下一個排名則會以相同值的數量遞增。
  • 排名值會從 1 開始遞增。

  • 排名順序取決於來源資料的類型。詳情請參閱排序順序

  • 對特定範圍的記錄執行轉換時,您必須分別使用 group 參數和 order 參數來定義記錄的群組和資料欄的排序。

  • 此函式可搭配下列轉換使用:
  • 此函式會指派排名值,以符合群組的總列數。存在相同的值時會執行較少的離散排序,詳情請參閱 DENSERANK 函式

基本用法

window value:RANK() order:MySales group:Salesman

輸出:產生新資料欄,其中包含 mySales 值的排名,並以 Salesman 欄分組。

語法

window value:RANK() order: order_col group: group_col

如要進一步瞭解 ordergroup 參數,請參閱 Window 轉換一文。

如要進一步瞭解語法標準,請參閱語言文件語法附註

範例

範例 - RANK 函式

這個範例將說明以下兩種函式:

  • RANK - 產生群組中值的排名順序。
    • 如果群組中有三個同等的值,則下一個排名即為同等值的排名再加上 3。
    • 詳情請參閱 RANK 函式
  • DENSERANK - 產生群組中值的排名順序。
    • 如果群組中有三個同等的值,則下一個排名即為同等值的排名再加上 1。
    • 詳情請參閱 DENSERANK 函式

來源:

下列資料集為四圈制的比賽中,三名參賽選手完成每圈所花費的時間。請注意,某些參賽選手完成單圈的時間是相同的。

跑者單圈計時時間
Dave172.2
Dave273.31
Dave372.2
Dave470.85
Mark171.73
Mark271.73
Mark372.99
Mark470.63
Tom174.43
Tom270.71
Tom371.02
Tom472.98


轉換:

您可以將 RANK() 函式套用至 Time 資料欄,並依個別跑者分組:

window value: RANK() group: Runner order: Time

您可以在同一個資料欄上使用 DENSERANK() 函式,並依跑者分組:

window value: DENSERANK() group: Runner order: Time

結果:

重新命名資料欄後,您會得到以下輸出結果:

跑者單圈計時時間排名密集排名
Mark470.6311
Mark171.7322
Mark271.7322
Mark372.9943
Tom270.7111
Tom371.0222
Tom472.9833
Tom174.4344
Dave470.8511
Dave172.222
Dave372.222
Dave273.3143

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁