with cte_t as (
select *, lead(rental_date) over (order by rental_date) > return_date y
from rental
where customer_id = 1
order by rental_date
)
/*
select row_number() over (order by rental_id) as period_id
, rental_date as from_date
, case
when nd is null
then (select max(return_date) from cte_t)
else (select max(return_date) from cte_t where return_date < nd)
end as to_date
from (
select *, lead(rental_date) over () nd
from cte_t
where y = 1
) t*/
select rental_id, rental_date, 'b' t
from cte_t
union all
select rental_id, return_date, 'e' t
order by 2