【发布时间】:2015-08-18 02:15:45
【问题描述】:
我想为以下数据计算客户的增长率。p>
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 问题是如何计算有效和正确的增长率,所有月间隔不跳过任何一个月
-
在某些时候,您可能还会发现统计聚合函数可用于计算线性回归,例如:postgresql.org/docs/9.0/static/functions-aggregate.html
标签: postgresql