У нас есть группа пациентов в одном столе, и мы хотим, чтобы каждый из них соответствовал каждому пациенту точно так же, как и в другой таблице, но мы хотим пары пациентов, чтобы мы не могли сопоставить пациента с более чем одним пациентом.Есть ли какой-либо способ в Google Big Query to Left Outer Присоединиться один на один * без повторного использования * любой строки справа?
Левые внешние соединения добавляют каждое совпадение - что соответствует пациентам для любого другого возможного совпадения - так что нам нужен другой подход.
Мы видим много ответов на вопрос о сопоставлении с первым рядом, но это оставляет нас с одним пациентом, который подходит нескольким другим пациентам - не такая пара, как нам нужна.
Есть ли какой-либо возможный способ создания парных совпадений без дублирования между таблицами в Google Big Query? (Даже если это займет несколько шагов.)
ADDENDUM: Вот пример таблицы. Было бы здорово увидеть пример SQL, используя это.
Вот что необходимо.
Example Source Tables:
Table A
PatientID Race Gender
1 A F
2 B M
3 A F
Table B
PatientID
4 A F
5 A F
6 B M
Results Table Desired:
Table C
A.PatientID B.PatientID_Match
1 4
2 6
3 5
РАЗЪЯСНЕНИЕ: Пациенты в таблице A должны соответствовать пациентам из таблицы B. (они не могут сравниться пациентами в их собственной таблице.)
Это должно быть возможно при условии, что вы даете логику для _which_ возможных совпадений, запись должна быть сохранена. –
поставляют кучу данных образца и ожидаемых результатов. Google Cloud Sql - это всего лишь мария, поскольку они хотят избежать ценообразования на предприятиях mysql и прокладывать себе путь. Помимо этого, нет необходимости упоминать Google ни в одном из этих (как я ее вижу). – Drew
В каждой таблице просто назначьте каждого пациента ранг. Соедините каждого пациента в таблице_a с пациентом с соответствующим рангом в таблице_b – Strawberry