Как спросить об изменениях за неделю в процентах - PullRequest
0 голосов
/ 16 декабря 2018

Мне нужно взять одно значение для дня X, второе значение для дня X - 7 и рассчитать%.Запрос может выглядеть так:

select
  edate, count_today, count_lastweek,
  round(
    100.0 * (count_today - count_lastweek) / count_lastweek, 2
  )  as daily_delta
from (
select
   EXTRACT(date FROM ts) as  edate,
    count(1) count_today,
    lag(count(1), 7) over (order by 1) as count_lastweek
  from X
  group by 1
  order by 1 desc
  limit 7) t

Результаты прошлой недели не соответствуют действительности, пытаясь понять, почему Спасибо!

1 Ответ

0 голосов
/ 16 декабря 2018

Есть куча, которую я не понимаю по этому запросу.Если вы используете lag(), вы предполагаете, что у вас есть данные каждый день.Позвольте мне сделать это предположение.

Я бы ожидал запрос, который выглядит следующим образом:

select date(ts) as edate, count(*) as cnt,
       (1 - cnt / lag(count(*), 7) over (order by date(ts))) as one_week_increase
from s
group by date(ts)
order by edate desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...