आप इसे दो विंडो फ़ंक्शंस को नेस्ट करके प्राप्त कर सकते हैं - पहला यह प्राप्त करने के लिए कि क्या src
पिछली पंक्ति से मान बदला गया, दूसरा परिवर्तनों की संख्या का योग करने के लिए। दुर्भाग्य से Postgres सीधे नेस्टिंग विंडो फ़ंक्शंस की अनुमति नहीं देता है, लेकिन आप इसके आसपास काम कर सकते हैं
एक सबक्वेरी के साथ:
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 _;