with c as (select a.trandt,sum(a.tranam) tranam from tran a group by a.trandt )--將子查詢抽取出來,以后可以直接用。該方法只適用於oracle,mysql不支持 select c.trandt, sum(d.tranam) from c inner join c d on c.trandt >= d.trandt group by c.trandt select c.trandt, sum(d.tranam) from (select a.trandt, sum(a.tranam) tranam from tran a group by a.trandt order by a.trandt) c inner join (select a.trandt, sum(a.tranam) tranam from tran a group by a.trandt order by a.trandt) d on c.trandt >= d.trandt group by c.trandt