एक दृष्टिकोण पंक्ति संख्याओं का अंतर है:
select name, count(*)
from (select t.*,
(row_number() over (order by id) -
row_number() over (partition by name order by id)
) as grp
from t
) t
group by grp, name;
तर्क को समझना सबसे आसान है यदि आप सबक्वेरी चलाते हैं और प्रत्येक पंक्ति संख्या के मानों को अलग से देखते हैं और फिर अंतर को देखते हैं।