我有一个包含事件注册记录的表。
我能够获得按日期分组的注册计数 -
SELECT DATE(`date_registered`) as `date`, COUNT(*) as `total`
FROM `registration`
GROUP BY DATE(`date_registered`)
所以我正在考虑做类似的事情-
SELECT DATE(`date_registered`) as `date`, COUNT(*) as `total`
FROM `registration`
GROUP BY DATE(`date_registered`) <= DATE(`date_registered`)
我试图用之前所有日期的计数进行 LEFT JOIN
,但这不起作用 -
SELECT DATE(r1.`date_registered`) as `date`, COUNT(*)+r3.preTotal as `total`
FROM `registration` r1
LEFT JOIN (
SELECT COUNT(*) as preTotal
FROM `registration` r2
WHERE DATE(r2.`date_registered`) < DATE(r1.`date_registered`)
) r3
GROUP BY DATE(r1.`date_registered`)
我创建了一个 SQLFiddle
与基本计数 - http://sqlfiddle.com/#!9/420d1d/5
以及我失败的尝试 - http://sqlfiddle.com/#!9/420d1d/6
我假设我缺少一种简单的方法。
编辑
在 rextester.com 上也是如此
基本计数 - http://rextester.com/GISU91151
和失败的尝试 - http://rextester.com/RDTFK34261
最佳答案
这个怎么样:
SELECT
DATE(`date_registered`) AS date,
(
SELECT COUNT(*)
FROM `registration` t2
WHERE DATE(t2.`date_registered`) <= DATE(t1.`date_registered`)
) AS total
FROM `registration` t1
GROUP BY DATE(`date_registered`);
关于mysql - 按日期和更早分组的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696906/