postgres=# select * from my_test ;
id | salary | revised_salary | old_salary | leave | joining_date
----+--------+----------------+------------+-------+--------------
10 | 5000 | 4000 | 1000 | 5 | 2019-11-15
10 | 6000 | 9000 | 2000 | 1 | 2019-11-16
10 | 7000 | 3000 | 4400 | 2 | 2019-11-17
20 | 8000 | 4000 | 6600 | 6 | 2019-11-15
20 | 9000 | 9400 | 8800 | 10 | 2019-11-16
20 | 2000 | 7800 | 9400 | 23 | 2019-11-17
30 | 4400 | 6600 | 4200 | 44 | 2019-11-15
30 | 1500 | 3600 | 4300 | 66 | 2019-11-16
30 | 2000 | 2600 | 4500 | 77 | 2019-11-17
(9 rows)
postgres=# select id,joining_date,sum(salary) as total_salary,
sum(revised_salary) as total_revised_salary ,
sum(old_salary) as total_old_salary ,
sum(leave) as total_leave
from my_test
group by rollup ( id, joining_date) order by 1, 2;
id | joining_date | total_salary | total_revised_salary | total_old_salary | total_leave
----+--------------+--------------+----------------------+------------------+-------------
10 | 2019-11-15 | 5000 | 4000 | 1000 | 5
10 | 2019-11-16 | 6000 | 9000 | 2000 | 1
10 | 2019-11-17 | 7000 | 3000 | 4400 | 2
10 | | 18000 | 16000 | 7400 | 8
20 | 2019-11-15 | 8000 | 4000 | 6600 | 6
20 | 2019-11-16 | 9000 | 9400 | 8800 | 10
20 | 2019-11-17 | 2000 | 7800 | 9400 | 23
20 | | 19000 | 21200 | 24800 | 39
30 | 2019-11-15 | 4400 | 6600 | 4200 | 44
30 | 2019-11-16 | 1500 | 3600 | 4300 | 66
30 | 2019-11-17 | 2000 | 2600 | 4500 | 77
30 | | 7900 | 12800 | 13000 | 187
| | 44900 | 50000 | 45200 | 234
(13 rows)
postgres=#