Вы можете развернуть и использовать кумулятивную сумму:
with da as (
select opened as date, assigned_group, 1 as open_inc, 0 as assigned_inc, 0 as in_work_inc, 0 as closed_inc
from t
union all
select assigned, assigned_group, -1, 1, 0, 0
from t
union all
select in_work, assigned_group, 0 -1, 1, 0
from t
union all
select closed, assigned_group, 0, 0, -1, 1
from t
)
select date, assigned_group,
sum(sum(open_inc)) over (partition by assigned_group order by date) as num_opens,
sum(sum(assigned_inc)) over (partition by assigned_group order by date) as num_assigned,
sum(sum(in_work_inc)) over (partition by assigned_group order by date) as num_in_work,
sum(sum(closed_inc)) over (partition by assigned_group order by date) as num_closed
from da
group by date, assigned_group
order by date, assigned_group;