объединить данные, НО ID повторяются.
Удалить дубликаты ID нельзя, т.к. по одному и тому же ID в каждой таблице есть свое уникальное значение: заявка/сделка (которые и нужно объединить в одну таблицу).
Объединять по ID и дате также не получится, т.к. даты не всегда совпадают. К более ранней дате заявки нужно прикрепить первую сделку.
Как можно решить задачу?
Задачник по SQL?
Сджойнить и записать даты под разными именами
Уникальности не хватает :slow:
В этом и проблема. А с циклами и списками/словарями я не силен. Не знаю с какого бока подступиться
А какая изначальная задача?
one IDs to many orders, решит твою проблему
Из двух таблиц собрать по id связку заявка/сделка. Потом уже по ним сделаю merge
А если связок несколько?
В каждой таблице есть свой уникальный идентификатор. В первой - номер заявки, во второй - номер сделки. Единственное, что их связывает - это id заказчика. Мне нужно получить df: id заказчика - заявка - сделка. id заказчика опять будет повторяться, но это не важно, т.к. мне потом понадобиться уникальные заявки/сделки, к которым будет merge из других таблиц
Ок, а как ты узнаешь какой сделке какая заявка соответствует?
К более ранней заявке идет более ранняя сделка и т.д.
А не бывает заявок без сделок?
Ну вот так делать не стоит, надо было отдельную таблицу завести где сделке в соответствие ставится заявка
Бывает, если заявок от заказчика больше чем сделок
То есть более ранняя может оказаться не той
Это данные с разных баз разных заказчиков
Кто задачу формулировал и как?
Вы просто взяли какие-то рандомные базы хз каких людей и пытаетесь из них намайнить данные?
Это отчет в экселе, который руками собирается: ctrl C - ctrl V Я его уже почти закончил в питоне, осталась последняя эта часть осталась, где невозможно обычными методами соединить заявки/сделки
Вы не думали подойти к вопросу с другой стороны? Вместо гадания над свалкой данных проработать над их структурой?
Имею то, что имею. Я не админ и напрямую с базами не работаю
То есть 1. есть гора данных с заявками и сделками 2. каждой сделке соответствует заявка, это можно определить по тому когда они созданы, старым сделкам соответствуют старые заявки 3. сделке может ничего не соответствовать 4. нужно отобрать для каждой сделки соответствующую заявку и вынести в отдельную таблицу Не видишь несостыковок?
Условно пронумеруем сделки и заявки цифрой означающей то насколько рано относительно других она создана, первая это 1, после нее 2 и тд Допустим есть сделки 1 2 3, первой сделке соответствует заявка 1, третьей сделке соответствует заявка 2, второй сделке не соответствует ничего Все что у нас есть это только набор сделок и заявок с датами и номером заказчика Как понять что второй сделке ничего не соответствует?
Не вижу. У меня мозг уже не соображает. Все варианты перебрал. Осталась на вас надежда.
Попробую я: по твои данным невозможно надёжно восстановить соответствте. Можно только попытаться угадать.
Попробуй на основе даты и сделки/id сделать свои ключи, тебе хоть как то надо идентифицировать строки
Типа оконной функции? Сделок не может быть больше чем заявок.
Ну заявок может быть больше, не важно
Если есть две заявки с датами раньше 1 сделки, то принимаем первую заявку
Ну можешь втупую взять таблицу со сделками, ордербайнуть по айди заказчика и дате и сджойнить по rowid с выборкой из таблицы заявок с тем же айди заказчика и лимитом в количество выбранных сделок
Где почитать? Гугл с первого раза ничего толкового не выдал...
В твоем случае не поможет
Обнадежил...
Обсуждают сегодня