蜂巢中具有select的子查询

时间:2019-03-15 14:54:19

标签: hadoop hive

团队,

我在这里遇到一个问题,对于两个列,例如a.ref1和b.ref2,有2个临时表a和b,其值分别为5和6。

我正在尝试将这些值添加到另一个SQL中

"select c.col1, d.col1,d.col2 from c join d on a.id=d.id where d.col1=(schema_name).a.ref1  or 
d.col2=(schema_name).b.ref2"

我收到类似

的错误
"Invalid table alias or column reference "

。任何想法,为什么会这样。我尝试使用select查询传递临时表值,但这在蜂巢中不起作用。任何进一步的帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您可以使用称为“公用表表达式”的方法来执行此操作,这将使查询性能更好。

它看起来像这样:

WITH
    refined_d AS
    (
        SELECT
            d.id,
            d.col1,
            d.col2
        FROM
            d
        INNER JOIN
            (schema_name).a
        ON
            ( (schema_name).a.ref1 = d.col1)
        INNER JOIN
            (schema_name).b
        ON
            ( ( schema_name).b.ref2 = d.col2)
    )
SELECT
    c.col1,
    d.col1,
    d.col2
FROM
    c
JOIN
    refined_d d
ON
    c.id=d.id;