with t as (select '2020-06-01' dt, 3 a, 4 b, 5 c, 7 d from dual union all select '2020-05-12', 4, 8, 9, 2 from dual union all select '2020-06-08', 1, 3, 5, 1 from dual ) select nvl(dt, '합계') , sum(a) as a , max(b) keep(dense_rank last order by dt) as b , sum(c) as c , max(d) keep(dense_rank last order by dt) as d from t group by rollup(dt) order by dt ;