合计/解析功能我不知道这是否是合法的:子查询与Hiveql
INSERT OVERWRITE TABLE my_table
SELECT field_1, field_2,
(SELECT STDDEV(field_from_my_table)
FROM my_table
WHERE field_from_my_table !=0)
FROM my_table
GROUP BY field_1;
到目前为止,我还没有能够得到它的工作。根据我的尝试,我收到了无数的错误,其中大部分是随机错误,指示非法语法。例如。
cannot recognize input near 'SELECT' 'STDDEV'
然而,这没有问题:
INSERT OVERWRITE TABLE my_table
SELECT field_1, field_2, STDDEV(field_from_my_table)
FROM my_table
GROUP BY field_1;
所以基本上,我只是在不断变化,我想如何使用STDDEV - 没有别的是,作品的版本和一个之间的不同那不。
如果不可能这样做,为什么不呢?如果是这样,我需要哪些更正?任何帮助将不胜感激。谢谢。
编辑:可能这Nested queries in Hive SQL,这Hive column as a subquery select,或本Does Hive support Select in Select?
EDIT2:所以我觉得比较容易的问题可能是: 这个作品,
INSERT OVERWRITE TABLE my_table
SELECT field_1, field_2, STDDEV(field_from_my_table)
FROM my_table
GROUP BY field_1;
而这个工作(作为交互式查询)
SELECT field_1, STDDEV(field_from_my_table)
FROM my_table
WHERE field_from_my_table !=0
GROUP BY field_1;
如何将两者合并为一个表(新的还是旧的)?
你说的工作没有,因为它有多个语法错误。你也应该说什么“不起作用”的意思。你有错误吗?它会返回意外的结果吗? –
对不起,这是在蜂巢。我忘了分号吗? –
语法错误:'field 2'。 'GROUP BY,','选择field1,field'/group by field1'。你的代码也缺少'insert'的列表(这是可选的,但应该是最佳实践)。 –