我想计算
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
我将不胜感激任何提示或帮助
提前致谢
我认为您可以尝试使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句