首页 > 解决方案 > 在 Hive 中选择

问题描述

我正在尝试使用来自另一个表 t1 的值在输出表 t2 中插入记录。这样做时,我还需要使用 t2 中 col3 列的最大值。

为了达到同样的效果,我尝试在表 t1 的 select 语句中使用 select max(c1)。这同样适用于 SQL。在 Hive 中是否有任何替代方法可以实现相同的目标?

INSERT INTO t2 
SELECT t1.c AS col1,
(SELECT MAX(col3)+1 FROM t2) AS col2
FROM t1;

这是我得到的错误

FAILED: ParseException line 7:1 cannot recognize input near '(' 'select' 'max' in expression specification

标签: hivehiveql

解决方案


INSERT INTO t2 
SELECT t1.c AS col1, 
       s.col2, 
       ... you need to provide all columns here
FROM t1
     cross join (select MAX(col3)+1 AS col2 FROM t2) s
;

推荐阅读