MySQL中每个月的每日运行总数
我有一个包含每日计数数据的表,看起来像这样:MySQL中每个月的每日运行总数,mysql,sql,mysql-5.7,Mysql,Sql,Mysql 5.7,我有一个包含每日计数数据的表,看起来像这样: Date Count 2019-12-01 100 2019-12-02 200 2019-12-03 300 ... ... 2020-01-01 10 2020-01-02 200 2020-01-03 500 Date Count Running Total 2019-12-01 100 100 20
Date Count
2019-12-01 100
2019-12-02 200
2019-12-03 300
... ...
2020-01-01 10
2020-01-02 200
2020-01-03 500
Date Count Running Total
2019-12-01 100 100
2019-12-02 200 300
2019-12-03 300 600
... ...
2020-01-01 10 10
2020-01-02 200 210
2020-01-03 500 710
...
我试着计算每个月每天的运行总数。预期结果应如下所示:
Date Count
2019-12-01 100
2019-12-02 200
2019-12-03 300
... ...
2020-01-01 10
2020-01-02 200
2020-01-03 500
Date Count Running Total
2019-12-01 100 100
2019-12-02 200 300
2019-12-03 300 600
... ...
2020-01-01 10 10
2020-01-02 200 210
2020-01-03 500 710
...
我设法计算了一个月的运行总数,但是我很难用一个查询得到多个月的运行总数。任何人都知道如何做,或者只使用SQL就可以提供这样做的想法?我正在运行MySQL 5.7
最好的
显然,日期将是您想要检查的任何内容。您可以使用以下会话变量
dbfiddle在8分贝范围内更容易计算。考虑升级。我在谷歌云上使用MySQL——版本8是不可用的。 ✓ ✓
SELECT
`Date`
, `Count`
,running_coint
FROM
(SELECT
`Date`
, `Count`
, IF(MONTH(@date) = MONTH(`Date`),@running_coint := @running_coint + `Count`,@running_coint := `Count`) running_coint
, @date := `Date`
FROM (SELECT * FROM table1 ORDER BY `Date`) t,(SELECT @running_coint := 0) a,(SELECT @date := '1999-01-01') b) t1
ORDER BY`Date`;
Date | Count | running_coint
:--------- | ----: | ------------:
2019-12-01 | 100 | 100
2019-12-02 | 200 | 300
2019-12-03 | 300 | 600
2020-01-01 | 10 | 10
2020-01-02 | 200 | 210
2020-01-03 | 500 | 710