在 Hive 中选择
Posted
技术标签:
【中文标题】在 Hive 中选择【英文标题】:Select within Select in Hive 【发布时间】:2019-09-26 03:04:19 【问题描述】:我正在尝试使用来自另一个表 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
【问题讨论】:
除了MAX计算的问题,t2还包含col3列,需要提供一些东西插入其中 【参考方案1】: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
;
【讨论】:
感谢@leftjoin,这是一个显而易见且简单的解决方案,但我想多了!感谢您的帮助!以上是关于在 Hive 中选择的主要内容,如果未能解决你的问题,请参考以下文章