gpt4 book ai didi

hadoop - Hive:更简洁的 SELECT AS 和 GROUP BY 方式

转载 作者:可可西里 更新时间:2023-11-01 14:11:42 28 4
gpt4 key购买 nike

我试着这样写Hive Sql

SELECT count(1), substr(date, 1, 4) as year
FROM ***
GROUP BY year

但是 Hive 无法识别别名“year”,它会提示:失败:SemanticException [错误 10004]:第 1:79 行无效的表别名或列引用“年”

一个解决方案(Hive: SELECT AS and GROUP BY)建议使用'GROUP BY substr(date, 1, 4)'。

有效!但是在某些情况下我想要分组的值可能是由多行hive函数代码生成的,这样写代码非常难看

SELECT count(1), func1(func2(..........................)) AS something
FROM ***
GROUP BY func1(func2(..........................))

在 Hive 中有什么干净的方法可以做到这一点吗?有什么建议吗?

最佳答案

指定分组依据中的位置将解决您的问题。 Group By 中的这个位置编号 即使在 SET hive.groupby.orderby.position.alias=true; 时也有效;(配置单元 0.12)

SELECT count(1), substr(date, 1, 4) as year  
FROM ***
GROUP BY 2;

关于hadoop - Hive:更简洁的 SELECT AS 和 GROUP BY 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29443253/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com