在最后一行除外时使用滞后函数



我想在 7 天前获得 last_value 和last_value之间的百分比差异。 这就是我现在的做法,但很想有任何其他建议或替代方案:

例子这个

日期----number_of_users

01/01: 5005

01/02 : 6555

current_date-7:5553 ...

current_date:6000

我正在尝试比较 6000 和 5553。我做对的方式是:

select 
date,
case 
when date=current_date then number_of_users
else lag(number_of_users,7) over(order by date) end as lag_7_day
from 
my_table

让我知道你们是否有其他选择?谢谢!

要将今天与 7 天前进行比较并获得 % 您需要这样的东西

select 
date,
number_of_users as number_of_users_current_date,
lag(number_of_users,7) over(order by date) number_of_users_lag_7_day
(number_of_users::float -  lag(number_of_users::float,7) over(order by date)) / number_of_users::float as percent_increase
from 
my_table
where date - current_date()

最新更新