1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Hive group by后面不能用列别名

Hive group by后面不能用列别名

时间:2022-02-06 07:56:34

相关推荐

Hive group by后面不能用列别名

比如,如下是会报错的,year这个别名此时还是不能用的

select deptno `dept`,year(hiredate) `year`,sum(sal)from tb_empgroup by deptno,year;

org.apache.hadoop.hive.ql.parse.SemanticException:Line 5:16 Invalid

table alias or column reference ‘year’: (possible column names are:

empno, ename, job, mgr, hiredate, sal, comm, deptno)

如下这种不用别名是可以的,同时虽然出现了两次year(hiredate),但是并不会增加运行耗时

select deptno `dept`,year(hiredate) `year`,sum(sal)from tb_empgroup by deptno, year(hiredate);+----+----+----+|dept|year|c2 |+----+----+----+|NULL|NULL|NULL||10 |1981|7450||10 |1982|1300||20 |1980|800 ||20 |1981|5975||20 |1987|4100||30 |1981|9400|+----+----+----+

原因

在hive中,group by的执行顺序在select之前,所以…

总结

要么嵌套要么不要使用列别名

参考

group by 和where 条件后面不能用刚设置的别名。_weixin_34245169的博客-CSDN博客

/weixin_34245169/article/details/93737105

为什么group by后面不能使用列的别名_涤生手记-CSDN博客

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。