Last_Value 返回当前值
Last_Value returning the current value
我无法获得最后一个值,而是它只是在雪花中返回与我下面的代码相同的值 - 有人知道吗?有什么明显的错误吗?
select MNTH,
sum_cust,
last_value(sum_cust) over (partition by MNTH order by sum_cust desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as sum_cust_last
from block_2;
我想你真正想要的是 LAG
之前 MNTH
:
的值
SELECT MNTH,
sum_cust,
LAG(sum_cust) OVER (ORDER BY MNTH) AS sum_cust_last
FROM block_2;
由于某些涉及 window 帧的技术原因,我实际上推荐 first_value()
而不是 last_value()
。如果您想要最后一个值,请按月份降序排序并选择第一行:
select MNTH, sum_cust,
first_value(sum_cust) over (order by MNTH desc
rows between current_row AND UNBOUNDED FOLLOWING
) as sum_cust_last
from block_2;
我无法获得最后一个值,而是它只是在雪花中返回与我下面的代码相同的值 - 有人知道吗?有什么明显的错误吗?
select MNTH,
sum_cust,
last_value(sum_cust) over (partition by MNTH order by sum_cust desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as sum_cust_last
from block_2;
我想你真正想要的是 LAG
之前 MNTH
:
SELECT MNTH,
sum_cust,
LAG(sum_cust) OVER (ORDER BY MNTH) AS sum_cust_last
FROM block_2;
由于某些涉及 window 帧的技术原因,我实际上推荐 first_value()
而不是 last_value()
。如果您想要最后一个值,请按月份降序排序并选择第一行:
select MNTH, sum_cust,
first_value(sum_cust) over (order by MNTH desc
rows between current_row AND UNBOUNDED FOLLOWING
) as sum_cust_last
from block_2;