select
count(*) as pu_groups,
count(pension_scheme_id) as groups_with_scheme,
count(strategy_id) as groups_with_strategy,
sum(sum_dt_pu) as total_dt_pu,
sum(sum_ct_pu) as total_ct_pu
from (
select
acc,
pension_scheme_id,
strategy_id,
contract_class_code,
sum(sum_dt) as sum_dt_pu,
sum(sum_ct) as sum_ct_pu
from temp_sum
group by
acc,
pension_scheme_id,
strategy_id,
contract_class_code
) grouped;