我想計算
INCOME_growth = INCOME_YTD - Income_prv_Month
我嘗試了滯后功能,自我加入我無法讓它作業
示例(起點)table_employee_info:
| Date |Employee_NO|INCOME_YTD |Date_ID|
--- |--- |--- |--- |
| 1/31/2022 |1002 |50 |202230
| 2/28/2022 |1045 |80 |202260
| 3/31/2022 |F104 |40 |202290
| 1/31/2022 |1002 |30 |202230
| 2/28/2022 |1045 |90 |202260
| 3/31/2022 |F104 |100 |202290
| 1/31/2022 |1002 |65 |202230
| 2/28/2022 |1045 |60 |202260
| 3/31/2022 |F104 |200 |202290
期望的結果將如下所示:首先,我們需要按 Employee_NO 排序,然后按日期排序。其次,計算新列 Income_prv_Month。第三,計算另一列 INCOME_growth。
| Date |Employee_NO|INCOME_YTD |Income_prv_Month|INCOME_growth|Date_ID|
--- |--- |--- |--- |--- |---
| 1/31/2022 |1002 |50 |0 |50 |202230
| 1/31/2022 |1002 |30 |50 |-20 |202230
| 1/31/2022 |1002 |65 |30 |30 |202230
| 2/28/2022 |1045 |80 |0 |80 |202260
| 2/28/2022 |1045 |90 |80 |10 |202260
| 2/28/2022 |1045 |60 |90 |-30 |202260
| 3/31/2022 |F104 |40 |0 |40 |202290
| 3/31/2022 |F104 |100 |40 |60 |202290
| 3/31/2022 |F104 |200 |100 |100 |202290
我將不勝感激任何提示或幫助
提前致謝
uj5u.com熱心網友回復:
我認為您可以嘗試使用LAG視窗函式,但真正的問題是,正如我評論的那樣,可能沒有一列可以代表您的預期結果順序,如果有一列我們可以替換為我下面的查詢[column which represnt your expect order]部分
SELECT t1.*,
LAG(INCOME_YTD,1,0) OVER(PARTITION BY Employee_NO ORDER BY date_ID ) Income_prv_Month,
INCOME_YTD - LAG(INCOME_YTD,1,0) OVER(PARTITION BY Employee_NO ORDER BY date_ID ) INCOME_growth
FROM T t1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/467494.html
下一篇:根據多列獲取重復行的索引列
