查询在Impala中不起作用

时间:2017-02-28 09:50:58

标签: hiveql impala

(SELECT CONCAT('ABCDE',SUM((SELECT MAX(id) FROM optigo_data.admin_userdetails LIMIT 1)+1)))

上面是在Mysql中工作,但它在Impala / Hive中不起作用,请帮帮我。

  

错误:不支持子查询。

1 个答案:

答案 0 :(得分:0)

此错误的原因是Impala仅支持FROM和WHERE子句中的子查询。 我认为这将是impala等价物:

SELECT
CONCAT('ABCDE',cast(SUM(t.value+1) as string))
from 
    (SELECT MAX(cast(id as int)) as value 
    FROM optigo_data.admin_userdetails LIMIT 1) as t

但是查看查询假设您的目标是生成包含最高ID + 1的字符串,更简单的解决方案是:

SELECT
CONCAT('ABCDE',cast(MAX(cast(id as int)+1) as string))
FROM optigo_data.admin_userdetails

如果我的假设不正确,请纠正我。如果cast as int已经是数字格式,则可以删除id