我有两个要加入的表。我要加入的变量之一是国家名称。但是,其中一个表具有值,而另一个表没有所有值。这将生成没有所有数据的空白行。
这是我目前正在尝试的
select 'display' as channel, date, market, revenue, spend
from (
select trim(market) as market, date, revenue
from table_a
) ABC
FULL JOIN (
select
case geosegmentation_countries
when 'united kingdom' then 'UK'
when 'germany' then 'DE'
when 'france' then 'FR'
when 'italy' then 'IT'
when 'spain' then 'ES'
else 'Other'
end as market,
date,
spend
from table_b
) OM on ABC.market = OM.market and ABC.date = OM.Date
ABC
表在市场中没有“其他”价值。这给了我这个输出,有空白的日期和市场。
如何解决此联接问题,以便其他市场数据具有正确的日期,并且在“ market
”栏中填充“其他”数据?
答案 0 :(得分:1)
您正在market
上加入并返回。我不确定您为什么使用full join
(您的解释建议使用left join
,但尚不清楚哪个表具有所需的所有行)。
也就是说,要获取'Other'
,请在外部SELECT
中使用COALESCE()
:
select 'display' as channel, date,
coalesce(market, 'other') as market,
revenue, spend