одним запросом это сильно «дорого» :(
лучше сделать скрипт который каждые сутки будет делать
insert into stat_table select date_sub(current_date, 1), sum(sum) from table where date < current_date;
create table stat_table (
to_day date,
big_sum int,
primary key(to_day)
)
либо если уж совсем хочется делать все динамически тогда можно попробовать вот такую красоту:
set @prev_day_sum:=0;
select
day,
@prev_day_sum:=d_sum + @prev_day_sum as sum_from_month_begin,
d_sum
from
(select
date(date) as day,
sum(sum) as d_sum
from
table
group by
day;
) as day_sum;
day — день
sum_from_month_begin — сумма от начала месяца
d_sum — за конкретный день