Вы можете получить число, используя lag()
и совокупную сумму:
select t.*,
sum(case when enddate = prev_enddate + interval '1' day
then 0 else 1
end) over (partition by customerid order by startdate
) as result
from (select t.*,
lag(enddate) over (partition by customerid order by startdate) as prev_enddate
from t
) t;