条件付き集計と累積合計を使用できます:
select date,
sum(sum(case when outcome = 'New' then 1
when outcome 'Complete' then -1
else 0
end)
) over (order by date) as VolumeOutstanding
from t
group by date
order by date;
これは、各saleId
が 最大で1つの「新しい」レコードと1つの「完全な」レコードがあります。これは意味があり、サンプルデータに当てはまります。