У меня есть таблица информации о заказе в следующем формате:
╔══════════════╦══════╦════════════════╦═══════════╦═════════╦══════════╗
║ Order Number ║ Line ║ Item ║ Warehouse ║ Carrier ║ Quantity ║
╠══════════════╬══════╬════════════════╬═══════════╬═════════╬══════════╣
║ 255 ║ 1 ║ STUFFED-ANIMAL ║ WH1 ║ UPS ║ 3 ║
║ 256 ║ 1 ║ BLOCKS ║ WH2 ║ FEDEX ║ 1 ║
║ 257 ║ 1 ║ DOLL ║ WH1 ║ UPS ║ 1 ║
║ 257 ║ 2 ║ DRESS ║ WH1 ║ UPS ║ 3 ║
║ 257 ║ 3 ║ SHOES ║ WH2 ║ UPS ║ 1 ║
║ 258 ║ 1 ║ CHAIR ║ WH3 ║ FEDEX ║ 1 ║
║ 258 ║ 2 ║ CHAIR ║ WH3 ║ UPS ║ 2 ║
╚══════════════╩══════╩════════════════╩═══════════╩═════════╩══════════╝
Я пытаюсь выполнить запрос таким образом, чтобы я разбил ее на группы на основе уникальной комбинации столбцов.
В моем примере я хотел бы получить следующий результат:
╔════════════════╦══════╦════════════════╦═══════════╦═════════╦══════════╗
║ Package-Number ║ Line ║ Item ║ Warehouse ║ Carrier ║ Quantity ║
╠════════════════╬══════╬════════════════╬═══════════╬═════════╬══════════╣
║ 255 ║ 1 ║ STUFFED-ANIMAL ║ WH1 ║ UPS ║ 3 ║
║ 256 ║ 1 ║ BLOCKS ║ WH2 ║ FEDEX ║ 1 ║
║ 257-1 ║ 1 ║ DOLL ║ WH1 ║ UPS ║ 1 ║
║ 257-1 ║ 2 ║ DRESS ║ WH1 ║ UPS ║ 3 ║
║ 257-2 ║ 3 ║ SHOES ║ WH2 ║ UPS ║ 1 ║
║ 258-1 ║ 1 ║ CHAIR ║ WH3 ║ FEDEX ║ 1 ║
║ 258-2 ║ 2 ║ CHAIR ║ WH3 ║ UPS ║ 2 ║
╚════════════════╩══════╩════════════════╩═══════════╩═════════╩══════════╝
Чтобы разбить его, я хотел бы сделать следующее:
Если номер заказа, склад иНосителем являются те же, что и один «раздел». Если есть только один раздел, то мы просто оставляем номер заказа в качестве номера пакета, в противном случае мы разбиваем его на пакеты. Эти пакеты пронумерованы одним и тем же набором значений, являющихся одинаковыми, но теперь имеют номер, обозначающий, какой это пакет.
Я искал использование row_number() over (partition by...
, которое я нашел после поиска похожих проблем, но я нене думаю, что это именно то, что я ищу.
Может ли кто-нибудь указать мне правильное направление?