【问题标题】:count of sum with group by [duplicate]与分组的总和计数[重复]
【发布时间】:2013-01-31 09:55:37
【问题描述】:

可能重复:
Calculate a running total in MySQL

我需要获取为每个日期分组的计数总和。现在我正在运行以下查询并得到如下输出:

SELECT  `timestamp` , COUNT( * ) 
FROM  `A` 
WHERE  `timestamp` >=  '2013-01-04 07:12:12'
GROUP BY DATE_FORMAT( `timestamp` ,  '%Y-%m-%d' ) 

我得到了

输出:

timestamp                                               count(*)
-------------------------------------------------- -----------
2013-01-04 07:58:21                                4
2013-01-05 09:28:56                                38
2013-01-06 00:03:04                                10

现在我需要的是,我需要得到按日期分组的计数的总和。也就是说,第二个日期应该是 42,第三个日期应该是 52。如何在查询中执行此操作?

【问题讨论】:

    标签: mysql sql group-by


    【解决方案1】:

    试一试:

    SELECT  `timestamp` , @sum:= ifnull(@sum, 0 ) + COUNT( * ) 
    FROM  `A` 
    WHERE  `timestamp` >=  '2013-01-04 07:12:12'
    GROUP BY DATE_FORMAT( `timestamp` ,  '%Y-%m-%d' ) 
    

    【讨论】:

      【解决方案2】:

      试试:

      SELECT 
         timestamp t , 
         (select count(*) from A where  timestamp <= t)
      FROM  A
      GROUP  BY timestamp
      ORDER  BY timestamp
      

      【讨论】:

        【解决方案3】:

        你能不能试试下面的SQL

        SELECT DATE_FORMAT( ts_date ,  '%Y-%m-%d' ) as ts_dt_out, SUM(cnt) 
        FROM
        (
        SELECT  `timestamp` ts_date , COUNT( * )  as cnt
        FROM  `A` 
        WHERE  `timestamp` >=  '2013-01-04 07:12:12'
        GROUP BY DATE_FORMAT( `timestamp` ,  '%Y-%m-%d' ) 
        )
        as inner
        WHERE ts_date >=  '2013-01-04 07:12:12'
        GROUP BY ts_dt_out
        

        注意:未经测试,如果不起作用,请告诉我

        【讨论】:

        • 这可能适用于这种情况,但是如果会有更多行怎么办,如果再过 10 天,您的解决方案就像 Alwin 提到的那样限制为 3 天,我希望他需要动态查询作为解决方案
        【解决方案4】:

        这是一个简单的方法

        SELECT  
            `timestamp` , 
            COUNT( * ) 
        FROM  `A` 
        WHERE  `timestamp` >=  '2013-01-04 07:12:12'
        GROUP BY DATE(`timestamp`) 
        

        【讨论】:

        • 这只会给出计数。不是我要找的总和
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-31
        • 2019-02-21
        • 2015-06-30
        • 2021-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多