#join #google-bigquery #left-join #case
#Присоединиться #google-bigquery #левое соединение #случай
Вопрос:
Сценарий: есть две таблицы bigquery с одинаковыми столбцами. Необходимо сравнить эти две таблицы с категорией и статьей, i) если то же самое присутствует в table_2, необходимо извлечь столбец «Поток» из table_2 ii) в противном случае сохраните тот же столбец потока из самого Table_1.
Таблица_1:
Category Article Flow
AA 11 Apple
AA 12 Orange
BB 13 Lemon
CC 14
Таблица_2:
Category Article Flow
AA 11 Melon
BB 13 Pine
Результирующая таблица:
Category Article Flow
AA 11 Melon
AA 12 Orange
BB 13 Pine
CC 14
Запрос Tried_Out:
select t1.Category, t1.Article, t2.Flow
from t1 left join t2
on t1.Category=t2.Category and t1.Article=t2.Article
Помогите мне решить эту проблему. Заранее спасибо!
Ответ №1:
Попробуйте левое соединение:
with table_1 as (
select 'AA' as category, 11 as article, 'Apple' as flow UNION ALL
select 'AA', 12, 'Orange' UNION ALL
select 'BB', 13, 'Lemon' UNION ALL
select 'CC', 14, null
),
table_2 as (
select 'AA' as category, 11 as article, 'Melon' as flow UNION ALL
select 'BB', 13, 'Pine'
)
select
table_1.category,
table_1.article,
ifnull(table_2.flow, table_1.flow) as flow
from table_1 left join table_2 using(category, article)