Toho můžete dosáhnout vnořením dvou okenních funkcí - první, která zjistí, zda src
hodnota změněná z předchozího řádku, druhá pro sečtení počtu změn. Postgres bohužel nepovoluje přímo funkce vnoření oken, ale můžete to obejít
s poddotazem:
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 _;