Один метод использует dense_rank()
:
select ol.*
from (select ol.*,
dense_rank() over (order by shipmentdate desc) as seqnum
from orderlines ol
) ol
where seqnum <= 2;
Кроме того, вы можете использовать фильтрацию в предложении where
:
select ol.*
from orderlines ol
where ol.shipmentdate >= (select distinct ol2.shipmentdate
from orderlines ol2
order by shipmentdate desc
offset 1 fetch first 1 row only
);