Dit is een gaps-and-island-probleem. U wilt het begin van elk eiland, dat u kunt identificeren door de status op de huidige rij te vergelijken met de status op het "vorige" record.
Hiervoor zijn vensterfuncties handig:
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