我有这样的数据:
年份 | 价值 |
---|---|
2022 | 1000 |
2023 | 500 |
我想用以前的值创建列,如下所示:
年份 | 价值 | 值_PY |
---|---|---|
2022 | 1000 | 空 |
2023 | 500 | 1000 |
2024 | 空 | 500 |
LAG() 函数不是最佳解决方案,因为我得到的表没有 2024 行。我该如何解决这个问题?
lag(value) OVER(order by Year)
我该如何解决这个问题?我应该向这个 LAG() 函数添加什么?
SELECT *, lag(value) OVER(order by Year) as Value_PY FROM
(
Select * from example
UNION
select '2024' as Year, NULL as value
) t
年份 | 价值 | 值_PY |
---|---|---|
2022 | 1000 | 空 |
2023 | 500 | 1000 |
2024 | 空 | 500 |