Двойная регистрация одной посылки

Двойная регистрация одной посылки

Ты работаешь аналитиком качества данных в платформе последней мили. Склады загружают регистрации посылок пакетами, а повторная отправка файла иногда создаёт несколько строк для одной и той же посылки. Перед расчётом вознаграждения перевозчикам нужно найти такие группы, чтобы одна физическая посылка не попала в биллинг несколько раз. Бизнес-ключ регистрации — пара carrier_code + tracking_number. Анализируй только строки, где оба компонента бизнес-ключа заполнены: значение не равно NULL и не является пустой строкой после удаления пробелов по краям. Найди бизнес-ключи, встречающиеся более одного раза, посчитай число строк в каждой группе и определи время первой и последней регистрации. Сравнение значений бизнес-ключа точное и чувствительное к регистру. Все строки внутри найденной группы учитываются в количестве, даже если остальные поля совпадают. Верни столбцы: - carrier_code — код перевозчика, текст; - tracking_number — трек-номер, текст; - duplicate_count — количество строк с этим бизнес-ключом, целое число; - first_registered_at — самое раннее время регистрации, timestamp with time zone; - last_registered_at — самое позднее время регистрации, timestamp with time zone. Отсортируй результат по duplicate_count по убыванию, затем по carrier_code и tracking_number по возрастанию. Округление не требуется. Строки с неполным бизнес-ключом не должны попадать в результат. Совпадения по количеству разрешай указанными вторичными полями сортировки.

Пример ожидаемого ответа

carrier_codetracking_numberduplicate_countfirst_registered_atlast_registered_at
FEDEXFX300232026-05-01 11:20:00+002026-05-01 11:45:00+00
DHLTRK100122026-05-01 09:00:00+002026-05-01 09:05:00+00
UPSUP200122026-05-01 10:10:00+002026-05-01 11:00:00+00
PostgreSQLv16

Здесь будет результат вашего запроса

Фокус-радио
На паузе · SomaFM · Fluid