範例:ROLLINGKTHLARGEST 函式

這個範例說明如何使用下列累計計算函式:

  • ROLLINGKTHLARGEST:計算目前列前後特定累計列數範圍中第「k」大的值。系統會將重複值視為有相同的「k」值。請參閱 ROLLINGKTHLARGEST 函式一文。
  • ROLLINGKTHLARGESTUNIQUE:計算目前列前後特定累計列數範圍中第「k」大的不重複值。系統會將重複值視為有不同的「k」值。請參閱 ROLLINGKTHLARGESTUNIQUE 函式一文。

以下資料集包含三個伺服器在前一週內每天重新啟動的次數。如果伺服器重新啟動的次數偏高,可能表示伺服器的健康狀態不佳。在這個範例中,您想瞭解各個伺服器在前一週累計最多和第二多的重新啟動次數。

來源:

DateServerRestarts
2/21/18s014
2/21/18s020
2/21/18s030
2/22/18s014
2/22/18s021
2/22/18s032
2/23/18s012
2/23/18s023
2/23/18s034
2/24/18s011
2/24/18s020
2/24/18s032
2/25/18s015
2/25/18s020
2/25/18s034
2/26/18s011
2/26/18s022
2/26/18s031
2/27/18s011
2/27/18s022
2/27/18s032


轉換:

首先,您要以個別的資料欄保存資料列資訊。由於資料已經依 Date 資料欄排序,因此您可以使用以下指令:

derive type:single value:ROWNUMBER() as:'entryId'

使用以下函式計算各個伺服器在前一週內重新啟動次數的累計第「k」大值。在這個範例中,您可以使用 ROLLINGKTHLARGEST 函式,並設定「k」=1。計算最大值時,重複與否沒有影響:

derive type: multiple value: rollingkthlargest(Restarts, 1, 6, 0) group: Server order: Server as: 'rollingkthlargest_1'

使用以下函式計算累計第二大的值。在這個範例中,您可以使用 ROLLINGKTHLARGESTUNIQUE

derive type: multiple value: rollingkthlargestunique(Restarts, 2, 6, 0) group: Server order: Server as: 'rollingKthLargestUnique_2'


結果:

entryIdDateServerRestartsrollingKthLargestUnique_2rollingkthlargest_Restarts
32/21/18s02000
62/22/18s02101
92/23/18s02313
122/24/18s02013
152/25/18s02013
182/26/18s02223
212/27/18s02223
42/21/18s03000
72/22/18s03202
102/23/18s03424
132/24/18s03224
162/25/18s03424
192/26/18s03124
222/27/18s03224
22/21/18s01444
52/22/18s01444
82/23/18s01224
112/24/18s01124
142/25/18s01545
172/26/18s01145
202/27/18s01145


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

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

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