Calculate sub-totals of multiple columns using single function

Hello, I am working with a huge oracle table, I need to calculate sub-total of multiple columns. Currently I am using the sum() function multiple time in my query and generating the results. But the execution time for this is too much. Is there any optimal method which can be used to get the subtotals for multiple combinations instead of using sum multiple times and increasing the complexity of the query. This is the query I am currently using-

select prod.prod_id, prod.prod_name, max(cust.cust_year_of_birth), 
	sum(sl. amount_sold) as tot_sales
		from DWU6.products prod, DWU6.customers cust, DWU6.sales sl
		where prod.prod_id = sl.prod_id and cust.cust_id = sl.cust_id
			and cust.cust_year_of_birth >= 1950
		group by prod.prod_id, prod.prod_name;