I got the following error:
x
Multiple attributes named business_id in reportAttributeReferenceAmbiguous; p.business_id, s.business_id
from the SPARK/HIVE query:
SELECT
business_id,
p.p1,
p.p2,
s.s1,
s.s2
FROM p_table p
FULL OUTER JOIN s_table s
ON p.business_id = s.business_id
Since I am using FULL OUTER JOIN
, business_id
could be either p.business_id
or s.business_id
, so I didn’t specify which one to use. (I thought some rows might have only p.business_id
while some other rows might have only s.business_id
, do I understand this wrong?)
So I am wondering what’s the proper way to select business_id
in the above query? Thanks!
Advertisement
Answer
Use
coalesce(p.business_id, s.business_id) as business_id
Or
nvl(p.business_id, s.business_id) as business_id
Or CASE statements like in this answer: https://stackoverflow.com/a/37744071/2700344