У меня есть таблица сопоставления с тремя столбцами old_id1
, old_id2
и new_id
в таблице Google BigQuery.
После выполнения некоторых операций SQL над несколькими другими таблицами, наконец, у меня есть таблица data
где у меня есть столбец id
(с другими столбцами), который может иметь либо old_id1
, old_id2
, либо new_id
.Я хочу заменить значения столбца id
так, чтобы он имел только new_id
s, используя таблицу сопоставления для выполнения некоторых агрегатных функций.
Также допустимо создать другой столбец путем объединения двух таблиц, состоящих только из new_id
для каждого id
.
Логически
If id == new_id, then pass
If id == old_id1 OR id == old_id2, then id = new_id
ИЛИ (новый столбец)
For each id, find its corresponding new_id and if it exists put it in a new column.
ПРИМЕР: mapping_table
old_id1 old_id2 new_id
o1 o2 n1
oo1 oo2 n2
data
id amount
o1 100
o2 200
n1 300
oo2 100
n2 50
n3 25
Если я попытаюсь найти общую сумму для каждого уникального идентификатора, ожидаемый результат:
id sum
n1 600
n2 150
n3 25