Last_Value возвращает текущее значение - PullRequest
0 голосов
/ 21 марта 2020

Я не могу получить последнее значение, скорее оно просто возвращает то же значение с моим кодом ниже в виде снежинки - у кого-нибудь есть идеи? Что-то явно не так?

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;

Ответы [ 2 ]

1 голос
/ 21 марта 2020

Я думаю, что вы действительно хотите LAG значение из предыдущего MNTH:

SELECT MNTH, 
       sum_cust, 
       LAG(sum_cust) OVER (ORDER BY MNTH) AS sum_cust_last
FROM block_2;
0 голосов
/ 21 марта 2020

Я действительно рекомендую first_value() вместо last_value() по некоторым техническим причинам, связанным с оконными рамами. Если вы хотите последнее значение, упорядочите по месяцам des c и выберите первую строку:

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;
...