繁体   English   中英

MySQL累积行数和按日期分组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM