mysql - 按日期和更早分组的行数

标签 mysql

我有一个包含事件注册记录的表。

table data

我能够获得按日期分组的注册计数 -

SELECT DATE(`date_registered`) as `date`, COUNT(*) as `total`  
FROM `registration`
GROUP BY DATE(`date_registered`)

count by date

但我想根据日期获取运行计数 -
count by date all

所以我正在考虑做类似的事情-

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/

相关文章:

mysql - 原始树集上的嵌套连接

mysql - 记录转换1列3行->1行3列

Mysql - 查询优化

mysql - 对分组字段求和

mysql - 匹配和更改的行数不相等

php - MySQL 正在跳过第一个结果

php - Laravel 4 一对一关系

mysql - 如何正确编写 SQL 查询来选择日期

php - MySQL 选择总和的记录

javascript - UPDATE SQL TABLE 使用绑定(bind)变量或绑定(bind)参数将新值减去存储值