MySQL累积了几个月的缺口

MySQL累积了几个月的缺口,mysql,sum,Mysql,Sum,我试图为下表建立几个月的累计总和 created_at Installs port 2011-02-01 00:00:00 2 7033 2012-02-05 00:00:00 8 7032 2012-03-01 00:00:00 1 7031 2012-05-05 00:00:00 2 8500 2012-06-01 00:00:00 4 7545 我使用以下查询 SE

我试图为下表建立几个月的累计总和

created_at          Installs    port
2011-02-01 00:00:00    2        7033
2012-02-05 00:00:00    8        7032
2012-03-01 00:00:00    1        7031
2012-05-05 00:00:00    2        8500
2012-06-01 00:00:00    4        7545
我使用以下查询

SELECT
    created_at,
    Installs,
    @total := @total + Installs AS cumulative
FROM
table, (SELECT @total:=0) AS t
这很好,但是在没有记录的几个月里,我没有得到任何总数。 我想用最后一个“已知”值来填补空白

我的猜测是,我需要创建一个引用一年中每个月的临时表,然后加入其中,但我无法正确地理解这一点

你有什么想法吗


谢谢

是的,你的猜测是解决这个问题的一种方法

创建一个(临时的或更好的:永久的)表,每个月有一行,比如说每个月的最后一天。然后使用
LEFT
join,类似于:

FROM 
        month_table AS mo 
    LEFT JOIN 
        table AS ta 
            ON  LAST_DAY(ta.created_at) = mo.last_day

如果希望查询正常工作,而不是偶然地正常工作,那么另一件事就是添加排序。当您希望以某种顺序处理表时,请始终使用
orderby
,“累积和”表示您不希望使用随机顺序。除非您指定,否则DBMS不会总是选择相同的顺序