Использование функции отставания за исключением последней строки - PullRequest
0 голосов
/ 20 января 2020

Я хочу получить разницу в% между last_value и last_value за 7 дней. Это то, как я делаю это прямо сейчас, но хотел бы иметь любые другие предложения или альтернативы:

Пример Эта

дата ---- 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

Дайте мне знать если у вас есть альтернативы? Спасибо!

1 Ответ

0 голосов
/ 20 января 2020

Чтобы сравнить сегодня с 7 днями go и получить%, вам нужно что-то вроде этого

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...