mysql - 如何在mysql中获取自月份开始以来的累计计数

标签 mysql sql

ID              int(11)       (NULL)             NO      PRI     (NULL)            
CREATED_DATE    datetime      (NULL)             YES             (NULL)                                   
<小时/>

如上所述是我的表“用户”的一些字段。我想要按日期分组的总用户数和累积计数。我在 mysql 中使用了以下查询。

SELECT q1.CREATED_DATE,q1.NO_OF_USER, (@runtot := @runtot + q1.NO_OF_USER) AS   CUMM_REGISTRATION FROM (SELECT date(CREATED_DATE) AS CREATED_DATE,
   COUNT(ID) AS NO_OF_USER FROM  USER,(SELECT @runtot:=0) AS n GROUP  BY CREATED_DATE ORDER  BY CREATED_DATE) AS q1

工作正常。现在我想要一个额外的数据,即“自 8 月 1 日以来的累计用户计数”。是否可以获取此修改上述查询或更好地在代码中处理?请提出建议。

最佳答案

您可以通过添加另一个变量并在代码中执行此操作来完成此操作:

SELECT q1.CREATED_DATE, q1.NO_OF_USER,
       (@runtot := @runtot + q1.NO_OF_USER) AS CUMM_REGISTRATION,
       @Aug1tot := if(CREATED_DATE >=date('2013-08-01'), @Aug1tot + q1.NO_OF_USER, NULL) as CUMM_SINCE_Aug1
FROM (SELECT date(CREATED_DATE) AS CREATED_DATE,
             COUNT(ID) AS NO_OF_USER
      FROM  USER cross join
            (SELECT @runtot:=0, @Aug1tot := 0) n
      GROUP  BY date(CREATED_DATE)
      ORDER  BY date(CREATED_DATE);
     ) AS q1

关于mysql - 如何在mysql中获取自月份开始以来的累计计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210575/

相关文章:

mysql - 如何在内部联接中选择第二个最小值?

mysql - 多对多关系mysql设计

mysql - Mariadb 查询(连接)不使用索引

php - 从 MySQL 插入返回行 ID

Mysql选择组合

mysql - 从 Mac Rails 应用程序连接到 Windows 7 计算机上运行的 MySQL?

php - sqldatabse 不接受非英文字符

PHP 无法在我的 XAMPP 服务器中正确存储阿拉伯语/波斯语文本

mysql - 同一表上同一字段的值的 AND 语句返回 0 个结果

sql - 异步查询状态功能仅在同一 session 中可用?