【发布时间】:2016-10-20 12:34:42
【问题描述】:
我遇到了一个 MySQL 问题,我还没有找到解决方案。我有以下查询,可以为我带来平台中每个时期的月份和新用户数量:
select
u.period ,
u.count_new as new_users
from
(select DATE_FORMAT(u.registration_date,'%Y-%m') as period, count(distinct u.id) as count_new from users u group by DATE_FORMAT(u.registration_date,'%Y-%m')) u
order by period desc;
结果是表格:
period,new_users
2016-10,103699
2016-09,149001
2016-08,169841
2016-07,150672
2016-06,148920
2016-05,160206
2016-04,147715
2016-03,173394
2016-02,157743
2016-01,173013
因此,我需要计算每个月-年的期间与上个月-年之间的差异。我需要这样的结果表:
period,new_users
2016-10,calculate(103699 - 149001)
2016-09,calculate(149001- 169841)
2016-08,calculate(169841- 150672)
2016-07,So on...
2016-06,...
2016-05,...
2016-04,...
2016-03,...
2016-02,...
2016-01,...
任何想法:=/
谢谢
【问题讨论】:
-
是的 - 自加入
-
这在我的情况下应该如何工作?
-
您再次重复派生表中的查询,然后使用第二个派生表中一个月前的时间段将这两个相互连接起来。