WITH T AS ( SELECT '216990' EMPNO , '20171211' TRAINYMD , 0 HCNT , 22 DUTTM FROM DUAL UNION ALL SELECT '216990' , '20171212' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171213' , 0 , 11 FROM DUAL UNION ALL SELECT '216990' , '20171214' , 12 , 21 FROM DUAL UNION ALL SELECT '216990' , '20171215' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171216' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171217' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171218' , 0 , 11 FROM DUAL UNION ALL SELECT '216990' , '20171219' , 12 , 11 FROM DUAL UNION ALL SELECT '216990' , '20171220' , 12 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171221' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171222' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171223' , 0 , 22 FROM DUAL UNION ALL SELECT '216990' , '20171224' , 0 , 22 FROM DUAL ) SELECT trainymd ,SUM(duttm) OVER(PARTITION BY gb ORDER BY trainymd) FROM( SELECT trainymd ,duttm ,SUM(hcnt) over(PARTITION BY empno ORDER BY trainymd) gb FROM t )