SQL/Hive table 别名

SQL/Hive table alias

我正在尝试 运行 在配置单元上进行此查询。我得到错误 失败:ParseException 行 1:83 无法识别谓词 'a1'。失败规则:连接类型说明符

中的 'kwInner'
SELECT
        a1.a_date, 
        b1.cli_n,
        a1.a_app, 
        sum(a1.rp_time) 
FROM
        table_1 a1, 
        table_2 b1
WHERE
        a1.a_app = b1.a_app
        AND a1.a_date >= '2015-05-01'
        AND a1.a_env IN ('a', 'b')
        AND a1.raw_data like '%abc%'
        AND a1.a_ser NOT LIKE '%fgh%'
GROUP BY 
        a1.a_date, 
        b1.cli_n, 
        a1.a_app

我认为它无法解析 "FROM table_1 a1," 部分。我可以请求帮助了解为什么 HIVE 拒绝此查询吗?

如果您的配置单元版本小于 0.13.0,您必须使用 JOIN 和 ON,而不是 Comma 和 WHERE。所以下面应该有效:

SELECT
        a1.a_date, 
        b1.cli_n,
        a1.a_app, 
        sum(a1.rp_time) 
FROM
      table_1 a1 
      LEFT OUTER JOIN
      table_2 b1
        ON  
        (
        a1.a_app = b1.a_app
        AND a1.a_date >= '2015-05-01'
        AND a1.a_env IN ('a', 'b')
        AND a1.raw_data like '%abc%'
        AND a1.a_ser NOT LIKE '%fgh%'
        )
GROUP BY 
        a1.a_date, 
        b1.cli_n, 
        a1.a_app