आप समान पंक्तियों और फिर एकत्रीकरण के लगातार समूह खोजना चाहते हैं। मुझे पंक्ति संख्या दृष्टिकोण का अंतर पसंद है:
select name, act, min(startt) as startt, max(endd) as endd
from (select i.*,
row_number() over (partition by name, act order by rn) as seqnum_na,
row_number() over (partition by name order by rn) as seqnum_n
from input i
) i
group by (seqnum_n - seqnum_na), name, act;
सबक्वेरी क्या करती है, यह देखकर आप देख सकते हैं कि यह कैसे काम करता है।