Я пытаюсь по существу объединить две таблицы, найти общие числа между ними, выяснить имя call_counterparty и создать таблицу результатов.Я хочу, чтобы он отображал call_counterparty, а не номер, который запрашивается, который в нашем случае является (from_number).Например, если вы позвоните мне, вы будете МОИМ контрагентом in_call, а я вашим контрагентом out_call.Если я позвоню вам, вы будете моим контрагентом out_call, а я вашим контрагентом in_call.Я не уверен, как провести различие между «call_counterparty».
Короче говоря, кому звонит или принимает вызов человек, и каково его имя?Если для таблицы в таблице, к которой нужно присоединиться, не существует имени, отобразите null.Давайте предположим, что мой номер телефона - 2228881111 ... и давайте предположим, что вы даже можете позвонить себе.
Две таблицы базы данных BigQuery, с которыми я работаю:
bigquery.call_log_table
from_number,to_number
2228881111,9997772222
2228881111,8883337777
8883337777,2228881111
2228881111,1112229999
6663332222,2228881111
2228881111,2228881111
bigquery.contact_list_table
number,name
9997772222,John
8883337777,Jill
2228881111,Me
Вот мой текущий код без левого соединения или другого:
SELECT CASE WHEN call_log.from_number =
'2228881111' THEN
call_log.to_number ELSE call_log.from_number END AS
call_counterparty,
SUM(call_log.to_number = '2228881111') AS in_call,
SUM(call_log.from_number = '2228881111') AS out_call
FROM `bigquery.call_log_table` AS call_log
WHERE '2228881111' in (call_log.from_number, call_log.to_number)
GROUP BY call_counterparty
Текущий результат:
call_counterparty,in_call,out_call
9997772222,0,1
8883337777,1,1
1112229999,0,1
6663332222,1,0
2228881111,1,1
РезультатЯ хочу:
call_counterparty,counterparty_name,in_call,out_call
9997772222,John,0,1
8883337777,Jill,1,1
1112229999,<null>,0,1
6663332222,<null>1,0
2228881111,Me,1,1
Я перепробовал все виды, провел часы, погуглил тонну, и я просто не могу понять это.Любая помощь будет принята с благодарностью!