यह एक अंतराल और द्वीप समस्या है। आप प्रत्येक द्वीप की शुरुआत चाहते हैं, जिसे आप "पिछला" रिकॉर्ड की स्थिति से वर्तमान पंक्ति की स्थिति की तुलना करके पहचान सकते हैं।
इसके लिए विंडो फंक्शन काम आते हैं:
select t.*
from (
select t.*, lag(status) over(partition by personID order by unixtime) lag_status
from mytable t
) t
where lag_status is null or status <> lag_status