Answer:
with ordered as
(select customerid,
orderdate::date as order_date,
LAG(orderdate::date) over (partition by customerid
order by orderdate) as prev_order_date
from orders),
gaps as
(select customerid,
(order_date - prev_order_date) as gap_days
from ordered
where prev_order_date is not null)
select customerid,
MAX(gap_days) as longest_gap_days
from gaps
group by customerid
order by longest_gap_days desc,
customerid;