Получите строки заказа, сгруппированные по следующим двум возможным датам отгрузки - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь выяснить в sql, как выбрать все строки заказа для следующих двух возможных отгрузокДата

OrderLines

    ID  Name       ShipmentDate
    1   Product 1    2019-04-10
    2   Product 1    2019-04-12
    3   Product 2    2019-04-12
    4   Product 1    2019-04-14

Желаемый результат

    ID  Name       ShipmentDate
    1   Product 1    2019-04-10
    2   Product 1    2019-04-12
    3   Product 2    2019-04-12

1 Ответ

1 голос
/ 08 апреля 2019

Один метод использует 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
                         );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...