1

重複の可能性:
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

今私が必要としているのは、日付別にグループ化されたカウントの合計を取得する必要があるということです。つまり、2 番目の日付の場合は 42、3 番目の日付の場合は 52 になります。クエリでこれを行うにはどうすればよいですか?

4

4 に答える 4

0

ここに簡単な方法があります

SELECT  
    `timestamp` , 
    COUNT( * ) 
FROM  `A` 
WHERE  `timestamp` >=  '2013-01-04 07:12:12'
GROUP BY DATE(`timestamp`) 
于 2013-01-31T10:31:33.683 に答える
0

試す :

SELECT 
   timestamp t , 
   (select count(*) from A where  timestamp <= t)
FROM  A
GROUP  BY timestamp
ORDER  BY timestamp
于 2013-01-31T10:11:19.730 に答える
0

以下の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

注:テストされていない場合はお知らせください

于 2013-01-31T10:04:33.943 に答える
0

試してみる:

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' ) 
于 2013-01-31T10:08:59.667 に答える