一个有效的查询需要更改,以包含另一个表中的列。左加入后,出现“列不存在”错误。在ON语句中使用列而不是列别名,第一个错误变成“不存在模式”错误。
这会产生“列“ a.audience_id”不存在错误“
select
criteria,
trim(split_part(criteria, ':', 3)) as audience_id,
t.category as audience_name,
row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
from
client.adwords_insights_audience a
left join core.googleads_inmarketaudience_xref x
on a.audience_id = x.criterion_id
group by
criteria,
trim(split_part(criteria, ':', 3)),
t.category
然后将ON子句更改为以下内容会产生“模式“ a”不存在”错误
select
criteria,
trim(split_part(criteria, ':', 3)) as audience_id,
t.category as audience_name,
row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
from
client.adwords_insights_audience a
left join core.googleads_inmarketaudience_xref x
on a.trim(split_part(criteria, ':', 3)) = x.criterion_id
group by
criteria,
trim(split_part(criteria, ':', 3)),
t.category
原始查询(如下)工作正常。只有当我左加入时才会出现错误。
select
criteria,
trim(split_part(criteria, ':', 3)) as audience_id,
row_number() OVER (PARTITION BY trim(split_part(criteria, ':', 3)) ORDER BY date desc) as rownumber
from
client.adwords_insights_audience a
group by
criteria,
trim(split_part(criteria, ':', 3))
“日期”列也可以,为了清晰起见,我将其与其他几本一起从这篇文章中删除。我希望在最终输出中找到t.category列。
答案 0 :(得分:0)
我怀疑如果修复表别名,则查询可能会起作用。以下是我对这些列的来源的最佳猜测:
select x.criteria,
trim(split_part(x.criteria, ':', 3)) as audience_id,
a.category as audience_name,
row_number() over (partition by trim(split_part(x.criteria, ':', 3)) order by ?.date desc) as rownumber
from client.adwords_insights_audience a left join
core.googleads_inmarketaudience_xref x
on a.audience_id = x.criterion_id
group by x.criteria,
trim(split_part(x.criteria, ':', 3)),
a.category;
?
是因为我不知道date
的来源。