首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询:每月用户增长百分比

SQL查询:每月用户增长百分比
EN

Stack Overflow用户
提问于 2013-05-03 19:27:26
回答 2查看 2.4K关注 0票数 2

我有这个简单的查询,计算每月的用户注册数量。

代码语言:javascript
复制
SELECT TO_CHAR(created_at, 'YYYY-MM') AS month, COUNT(user_id)
FROM users
GROUP BY month
ORDER BY month DESC 

我想要的是每个月与前一个月相比的百分比增长。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 19:36:48

SQL Fiddle

代码语言:javascript
复制
select
    month, total,
    (total::float / lag(total) over (order by month) - 1) * 100 growth
from (
    select to_char(created_at, 'yyyy-mm') as month, count(user_id) total
    from users
    group by month
) s
order by month;
  month  | total |      growth      
---------+-------+------------------
 2013-01 |     2 |                 
 2013-02 |     3 |               50
 2013-03 |     5 | 66.6666666666667
票数 6
EN

Stack Overflow用户

发布于 2013-05-03 19:37:51

SQL Fiddle

PostgreSQL 9.1.9架构安装

代码语言:javascript
复制
create table users (created_at date, user_id int);
insert into users select '20130101', 1;
insert into users select '20130102', 2;
insert into users select '20130203', 3;
insert into users select '20130204', 4;
insert into users select '20130201', 5;
insert into users select '20130302', 6;
insert into users select '20130303', 7;
insert into users select '20130302', 8;
insert into users select '20130303', 9;
insert into users select '20130303', 10;

查询1

代码语言:javascript
复制
select
  month,
  UserCount,
  100 - lag(UserCount) over (order by month asc)
        * 100.0 / UserCount Growth_Percentage
from
(
  SELECT TO_CHAR(created_at, 'YYYY-MM') AS month,
         COUNT(user_id) UserCount
  FROM users
  GROUP BY month
  ORDER BY month DESC
) sq

代码语言:javascript
复制
|   MONTH | USERCOUNT | GROWTH_PERCENTAGE |
-------------------------------------------
| 2013-01 |         2 |            (null) |
| 2013-02 |         3 |   33.333333333333 |
| 2013-03 |         5 |                40 |

Clodoaldo是对的,应该使用(Fiddle2)计算增长百分比

代码语言:javascript
复制
  100.0 * UserCount
        / lag(UserCount) over (order by month asc)
        - 100
        AS Growth_Percentage
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16357876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档