Если последний раздел всегда находится в текущей дате, вы можете отфильтровать текущий раздел даты и использовать rank (), чтобы найти записи с последним часом, минутой:
select * --list columns here
from
(
select s.*, rank() over(order by hour desc, minute desc) rnk
from your_table s
where s.year=year(current_date) --filter current day (better pass variables calculated if possible)
and s.month=lpad(month(current_date),2,0)
and s.day=lpad(day(current_date),2,0)
-- and s.hour=lpad(hour(current_timestamp),2,0) --consider also adding this
) s
where rnk=1 --latest hour, minute
И если последний раздел не является обязательно равно current_date, тогда вы можете использовать rank() over (order by s.year desc, s.month desc, s.day desc, hour desc, minute desc)
, без фильтра на дату, это будет сканировать всю таблицу и неэффективно.
Это будет работать лучше, если вы сможете вычислить фильтры разделов в оболочке и передать в качестве параметров , Смотрите комментарии в коде.