Puoi ottenere questo nidificando due funzioni della finestra:la prima per ottenere se il src
valore modificato rispetto alla riga precedente, la seconda per sommare il numero di modifiche. Sfortunatamente Postgres non consente direttamente le funzioni della finestra di nidificazione, ma puoi aggirarlo
con una sottoquery:
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 _;