U kunt dit bereiken door twee vensterfuncties te nesten - de eerste om te achterhalen of de src
waarde gewijzigd ten opzichte van de vorige rij, de tweede om het aantal wijzigingen op te tellen. Helaas staat Postgres niet rechtstreeks nesting-vensterfuncties toe, maar u kunt daar omheen werken
met een subquery:
SELECT
id,
src,
sum(incr) OVER (ORDER BY id)
FROM (
SELECT
*,
(lag(src) OVER (ORDER BY id) IS DISTINCT FROM src)::int AS incr
FROM example
) AS _;