DENSERANK 函式

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

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

  • 您必須使用 grouporder 參數定義記錄群組,以及對記錄套用這個轉換的順序。

  • 此函式可與下列轉換一起使用:
  • 此函式會將一組同等值的下一個排名值指派為以 1 遞增的排名。如要進一步瞭解離散排名,請參閱 RANK 函式

基本用法

window value:DENSERANK() order:Times group:Racer

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

語法

window value:DENSERANK() 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 說明文件
需要協助嗎?請前往我們的支援網頁