Hive 报错 Expression not in GROUP BY key

https://blog.csdn.net/chinamcafee/article/details/53407505

collect_set() 函数解决

 

报错代码:

SELECT u.sex ,m.moviename,AVG(r.rate) as avgScore,count(r.rate) as total
from t_user as u
join t_rating as r on r.userid = u.userid 
join t_movie  as m on m.movieid = r.movieid 
where u.sex = 'F'
GROUP BY m.moviename 
HAVING total > 50
ORDER BY avgScore DESC LIMIT 10;

Error while compiling statement: FAILED: SemanticException [Error 10025]: Line 1:7 Expression not in GROUP BY key 'sex'

 

解决代码:

SELECT collect_set(u.sex)[0] as sex,m.moviename,AVG(r.rate) as avgScore,count(r.rate) as total
from t_user as u
join t_rating as r on r.userid = u.userid 
join t_movie  as m on m.movieid = r.movieid 
where u.sex = 'F'
GROUP BY m.moviename 
HAVING total > 50
ORDER BY avgScore DESC LIMIT 10;

 

SELECT ‘F’ as sex,m.moviename,AVG(r.rate) as avgScore,count(r.rate) as total
from t_user as u
join t_rating as r on r.userid = u.userid 
join t_movie  as m on m.movieid = r.movieid 
where u.sex = 'F'
GROUP BY m.moviename 
HAVING total > 50
ORDER BY avgScore DESC LIMIT 10;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值