【发布时间】:2017-10-31 14:37:56
【问题描述】:
SELECT A.* , B.* FROM
(SELECT ID,DATE FROM APPLE) A
INNER JOIN
(SELECT ID,MAX(DATE) AS MAXDATE FROM APPLE GROUP BY ID) A1
ON A.ID = A.ID AND A.DATE = A1.MAXDATE
WHERE A.DATE > CURRENT_DATE
LEFT OUTER JOIN (
SELECT ID,NAME FROM BANANA) B
ON A.ID = B.ID
WHERE B.NAME IN ('USA','GBR') LIMIT 10;
错误:编译语句时出错:FAILED:ParseException 行 22:0 在 'CURRENT_DATE' 附近的 'LEFT' 缺少 EOF (状态=42000,代码=40000)
【问题讨论】:
-
我不确定这是否是 Hive 的正确语法,但我很确定
SELECT A.*, B.* FROM ...必须带有星号而不是点号? -
我只添加了 A.*,B.*,由于某种原因它没有显示。现在更正了。
-
这是一个猜测,但我认为它失败了,因为你在中间有 where 语句,这意味着只在最后。您没有使用子查询来过滤此语句。
-
那个内连接部分需要 where 子句,如果我在 ON(左外连接)之后插入 where 条件,那将无法解决我的目的。