This query was working in Redshift but isn’t in Amazon Athena:
x
SELECT DISTINCT t1.place_id, t1.date, flg
FROM rec t1
LEFT JOIN (
SELECT date, place_id,
CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS flg
FROM rec
GROUP BY date, place_id
) t2 ON t1.one_year_ago_dow_day = t2.date AND t1.place_id = t2.place_id
The error message is:
------------------------------------------
Your query has the following error(s):
SYNTAX_ERROR: line 84:39: Column 't2.date' cannot be resolved
This query ran against the "~~~" database, unless qualified by the query. Please post the error message on our forum or contact customer support with Query Id: 29311d73-2cdb-4279-b88c-xxxxxxx
--------------------------------------
The error says “t2.date” is the problem, is it because I am selecting the table in left join?
How do I get this SQL to work in Athena?
Any insight would be appreciated.
Advertisement
Answer
If the date
field is causing problems (as suggested by @Deepstop), you can try:
SELECT DISTINCT t1.place_id, t1.date, flg
FROM rec t1
LEFT JOIN (
SELECT
date as date1, -- Changed here, and in the ON below
place_id,
CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END AS flg
FROM rec
GROUP BY date, place_id
) t2 ON (t1.one_year_ago_dow_day = t2.date1) AND (t1.place_id = t2.place_id)