आप सशर्त एकत्रीकरण और एक संचयी योग का उपयोग कर सकते हैं:
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
अधिक से अधिक एक "नया" और एक "पूर्ण" रिकॉर्ड है -- जो आपके नमूना डेटा में समझ में आता है और सही है।