Sql 当两个表中不存在所有值时,如何修复两个表的完全外部联接
我想加入两张桌子。我要加入的变量之一是国家名称。但是,其中一个表有值,而另一个表没有所有值。这将生成没有所有数据的空行 这就是我目前正在尝试的Sql 当两个表中不存在所有值时,如何修复两个表的完全外部联接,sql,presto,Sql,Presto,我想加入两张桌子。我要加入的变量之一是国家名称。但是,其中一个表有值,而另一个表没有所有值。这将生成没有所有数据的空行 这就是我目前正在尝试的 select 'display' as channel, date, market, revenue, spend from ( select trim(market) as market, date, revenue from table_a ) ABC FULL JOIN ( select case geosegmentatio
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
列中?您正在market
上加入并返回它。我不清楚为什么要使用完全联接
(您的解释建议使用左联接
,但不清楚哪个表包含您想要的所有行)
也就是说,要获取“其他”
,请在外部中使用选择:
select 'display' as channel, date,
coalesce(market, 'other') as market,
revenue, spend
我们需要样本表数据和匹配的预期结果。(作为格式化文本,而不是图像。)在您的问题中没有表被称为DBM
。非常感谢!我完全同意,左联会更好。现在我终于理解了合并函数!