Я хотел бы рассчитать темп роста для клиентов для следующих данных.Postgres рассчитывает прирост в течение двух месяцев
month | customers
-------------------------
01-2015 | 1
02-2015 | 10
03-2014 | 10
06-2015 | 15
Я использовал следующую формулу для расчета скорости роста, он работает только в течение одного месяца интервала, а также не в состоянии дать ожидаемого результата из-за разрыва между 3-й и 6-й месяц, как показано в таблице выше
select
month, total,
(total::float/lag(total) over (order by month) - 1) * 100 growth
from (
select to_char(created, 'yyyy-mm') as month, count(id) total
from customers
group by month
) s
order by month;
Я думаю, что это можно сделать, создав диапазон дат и группу по этому диапазону.
Я ожидаю, что два основных выхода отдельно 1) Сгенерируйте темп роста с точной разницей в один месяц 2) Темп роста с интервалом в 2 месяца вместо одного месяца. В приведенных выше данных суммируйте двухмесячный результат и группу на два месяца вместо месяца
чем вопрос .. –
@VaoTsun Вопрос в том, как рассчитать эффективный и правильный темп роста со всеми месячными интервалами без пропуска в любой месяц – ram
В какой-то момент вы также можете найти статистические агрегированные функции для расчета линейной регрессии, например: http://www.postgresql.org/docs/9.0/стат ic/functions-aggregate.html –