[英]Mysql cumulative row count and group by date
我正在尝试对用户注册进行累计计数,我的数据与此类似:
User_ID Creation Date
2 11-02-2017
3 10-25-2017
4 10-22-2017
5 10-20-2017
6 10-14-2017
7 10-02-2017
8 10-01-2017
我想要一个查询,该查询将显示表中每个日期之前已注册的用户数,例如:
Registrations Creation Date Accumulated
1 11-02-2017 1
1 10-25-2017 2
1 10-22-2017 3
1 10-20-2017 4
1 10-14-2017 5
1 10-02-2017 6
1 10-01-2017 7
我当前的查询是:
SELECT count(*) as total,
date(created_at) as date,
@running_count := @running_count + count(*) AS Counter
FROM Users
GROUP BY date
不幸的是,它不起作用,任何人都可以阐明一些想法吗?
PS:请不要链接显示如何对字段值求和的问题,因为这是对COUNT行的求和。
您需要在子查询中进行分组。
SELECT total AS Registrations, date AS `Creation Date`, @running_count := @running_count + total AS Accumulated
FROM (
SELECT date(created_at) AS date, COUNT(*) AS total
FROM Users
GROUP BY date
ORDER BY date) AS u
CROSS JOIN (SELECT @running_count := 0) AS var
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.