select
mon.mon_sid,
mon.mon_hostname,
mon.mon_port,
mon.mon_display,
logs_status AS current_status,
previous_status,
logs_updated
from (
select
l.*,
lag(logs_status) over(
partition by mon_id
order by logs_updated
) previous_status
from logs l
) tmp
INNER JOIN monitoring AS mon
ON tmp.mon_id = mon.mon_id
where logs_status <> previous_status
ORDER BY logs_updated DESC