Mysql совокупное количество строк и групп по дате

Я пытаюсь сделать кумулятивный подсчет регистрации моих пользователей, мои данные похожи на это:

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 строк.

1

Решение

Вам нужно сделать группировку в подзапросе.

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
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector