Това е проблем с пропуски и острови. Искате началото на всеки остров, което можете да идентифицирате, като сравните състоянието на текущия ред със състоянието на „предишния“ запис.
Функциите на прозореца са полезни за това:
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