我想找出工资低于平均工资的雇员人数。
我对Hive还很陌生,有点挣扎,有人能解释一下我的说法有什么问题吗?
我的声明-
SELECT COUNT(*) FROM(SELECT wage, AVG(wage) AS avgWage FROM emp_wages) WHERE wage < avgWage;
错误- ParseException line 1:82 cannot recognize input near 'where' 'wage' '<' in subquery source
感谢您的帮助!
4条答案
按热度按时间brjng4g31#
问题是avg是一个聚合函数。如果要Map一对多关系,则需要使用交叉联接函数:
5fjcxozz2#
qc6wkl3g3#
语法错误。派生表应具有别名。
就查询而言,它需要改变。
qaxu7uf24#
正确的查询是:
由于子查询中有wage和avgwage,您将得到一个解析错误。