NEXT 函式

從資料欄中擷取位在當前值之後指定列數上的值。
  • 要擷取值的資料列是由執行轉換時的資料列順序決定。如果您正在處理隨機產生的資料集樣本,您在這個函式中看見的值未必會對應到在工作執行期間於完整資料集上產生的值。

  • 如果下一個值缺失或為空值,則這個函式會產生遺漏值。
  • 您可以使用 grouporder 參數定義記錄群組,以及對記錄套用這個轉換的順序。
  • 這個函式可與下列的轉換一起使用:

基本用法

window value:NEXT(myNumber, 1) order:Date

輸出:產生新資料欄,其中列出資料集按 myNumber 排序後,目前資料列的下一列中 Date 資料欄的值。

語法

window value:NEXT(col_ref, k_integer) order: order_col [group: group_col]

引數是否必要?資料類型說明
col_ref字串資料欄名稱,其值會套用於函式
k_integer整數 (正數)用於擷取值的當前資料列之後的列數

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

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

col_ref

資料欄名稱,系統會使用此資料欄的值來擷取當前值之後 k-integer 的指定值。

  • 不支援使用多個資料欄和萬用字元。

使用須知:

是否必要?資料類型範例值
字串 (資料欄參照)myColumn

k_integer

整數,代表目前用於擷取值的資料之後的列數。

  • 值必須是正整數。如為負值,請參閱 PREV 函式
  • k=1 代表緊接在後的列值。
  • 如果 k 大於或等於資料欄中的值數,則產生在資料欄中的值均為遺漏值。如果套用 group 參數,則此參數不應超過群組的最大列數。
  • 如果提供給函式的範圍超過資料集的限制,則函式會產生空值。
  • 如果函式的範圍有效但包含遺漏值,則函式會產生非空值的遺漏值。

使用須知:

是否必要?資料類型範例值
整數4

範例

範例 - 檢查先前的訂單記錄

下列資料集包含前 12 個月的訂單資訊。您想要比較當前月份與前一季的平均值。

來源:

DateAmount
12/31/15118
11/30/156
10/31/15443
9/30/15785
8/31/1577
7/31/15606
6/30/15421
5/31/15763
4/30/15305
3/31/15824
2/28/15135
1/31/15523

轉換:

使用 ROLLINGAVERAGE 函式產生的資料欄會包含當前月份和前兩個月的累計平均值:

window value: ROLLINGAVERAGE(Amount, 3, 0) order: -Date

請注意第二個參數和 order 參數的符號。排序與 Date 參數的順序相反,此參數維持目前的排序順序。因此,第二個參數 (識別計算所使用的列數) 必須是正數,才能擷取前幾個月的記錄。

就技術層面而言,這樣的計算並不會擷取前一季的記錄,因為計算中還包含了目前這一季。您可以使用下列資料欄來擷取前一個月的累計平均值,然後變成前一季真正的累計平均值。window 資料欄會參照前一步驟產生的資料欄名稱:

window value: NEXT(window, 1) order: -Date

請務必保留排序參數。這個新的資料欄 (window1) 含有前一季的累計平均值:

rename col:window1 to:'Amount_PriorQtr'

您可以重新設定這個數字值的格式:

set col:Amount_PriorQtr value:NUMFORMAT(Amount_PriorQtr, '###.00')

您可以使用下列轉換指令來計算淨變更值。此公式會以前一季的百分比來計算變更,然後格式化為兩位數的百分比。

derive type:single value:NUMFORMAT(((Amount - Amount_PriorQtr) / Amount_PriorQtr) * 100, '##.##') as:'NetChangePct_PriorQtr'

結果:

注意:您會發現二月和三月的 Amount_PriorQtr 都有計算值。這些值並非完整三個月的計算,因為沒有三個月的資料可以計算。由於沒有先前月份的資料,因此一月的值不存在。

DateAmountAmount_PriorQtr NetChangePct_PriorQtr
12/31/15118411.33-71.31
11/30/156435.00-98.62
10/31/15443489.33-9.47
9/30/15785368.00113.32
8/31/1577596.67-87.1
7/31/15606496.3322.1
6/30/15421630.67-33.25
5/31/15763421.3381.09
4/30/15305494.00-38.26
3/31/15824329.00150.46
2/28/15135523.00-.74.19
1/31/15523

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

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

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