跳至主要內容
Workday User Guide
上次更新時間 :2023-06-23
LEAD

LEAD

說明

LEAD
是一個視窗匯總函數,用於將列分組、依欄位對列進行排序,並傳回群組中目前列之後 (下方) 指定偏移處該列中某個欄位的值。
PARTITION BY
子句決定要使用哪些欄位來將一組輸入列分組。該
ORDER BY
子句決定如何排序分區中的列。
Workday 會根據分區欄位將輸入列分組,根據排序欄位對列進行排序,然後計算每個群組中的匯總運算式 (此函數的潛在客戶)。

語法

LEAD
(
input_field
,
offset
,
default_value
)
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

傳回值

每列傳回一個與
input_field
類型相同的值。

輸入參數

input_field
必填。要執行匯總函數的欄位。您可以指定任何欄位類型。
offset
選用。要傳回其值的目前列之後的列數。必須是大於或等於零 (0) 且小於或等於 100 的常值數字。若未指定偏移,Workday 會使用值 1。
default_value
選用。當偏移列位於目前定義的視窗之外,或偏移列中的值為 NULL 時,此函數會傳回的值。
default_value
必須與
input_field
的類型相同。若未指定預設值,Workday 會使用 NULL。
OVER()
必填。
OVER
必須在以下範圍內使用
LEAD
運算式。
PARTITION
BYpartitioning_field
必填。使用
PARTITION BY
子句,指定一或多個欄位,用於對一組輸入列進行分區。您可以指定「貨幣」以外的任何欄位類型。例如,如果您將「月份」欄位指定為分區欄位,Workday 會將月份值相同的所有記錄分組歸入單一分區。
ORDER BY
ordering_field
必填。使用
ORDER BY
子句,使用每個分區內的指定欄位值,指定如何排序分區中的輸入列。您可以指定「貨幣」以外的任何欄位類型。
您可以使用
DESC
ASC
關鍵字︰依每個排序欄位的遞減順序 (高到低,NULL 在最後) 或遞增順序 (低到高,NULL 在前) 進行排序。如果您未為排序欄位指定排序順序,Workday 會自動按遞增順序對列進行排序。

範例

範例︰您有一個包含以下列和欄位的資料集。
row_ID
Employee_Name
Eff_Date
薪資
1
Goh
1/1/18
49000
2
Goh
1/1/19
56000
3
Goh
1/1/17
44000
4
弗里曼
1/1/18
65000
5
弗里曼
1/1/17
57000
6
弗里曼
1/1/19
69000
7
斯密
1/1/18
51000
8
斯密
1/1/19
56000
9
斯密
1/1/16
44000
您可以在生效日期 (
Eff_Date
) 欄位中,依遞減順序 (
DESC
) 對每個正職員工的列進行排序,因此最近的薪資在每個分區中排在最前面。
請在
Salary_Increase
欄位中使用此運算式,計算每次變更生效日期之間的薪資變化︰
[Salary] - (LEAD([Salary], 1, [Salary]) OVER( PARTITION BY [Employee_Name] ORDER BY [Eff_Date] DESC) )
您會得到以下結果︰
row_ID
Employee_Name
Eff_Date
薪資
Salary_Increase
2
Goh
1/1/19
56000
7000
1
Goh
1/1/18
49000
5000
3
Goh
1/1/17
44000
0
6
弗里曼
1/1/19
69000
4000
4
弗里曼
1/1/18
65000
8000
5
弗里曼
1/1/17
57000
0
8
斯密
1/1/19
56000
5000
7
斯密
1/1/18
51000
7000
9
斯密
1/1/16
44000
0