Dies ist ein Lücken-und-Insel-Problem. Sie möchten den Anfang jeder Insel, die Sie identifizieren können, indem Sie den Status in der aktuellen Zeile mit dem Status im "vorherigen" Datensatz vergleichen.
Fensterfunktionen sind dafür praktisch:
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