FROM THIS:
Hotel Type Room Guest From To ------------------------- ------ ---- ----------
How about using lag to access the previous row and check if it has the same value as the current one?
lag
select decode(hotel, lag(hotel, 1, null) over (order by hotel, room, ...), null, hotel) as "Hotel" from ...