2015-06-13 91 views
1

查询结果我有这样的查询工作:蜂巢ORDER BY错误

SELECT movieid, COUNT(movieid) 
FROM rating 
GROUP BY movieid 

但是当我尝试添加的顺序由我得到一个错误:

SELECT movieid, COUNT(movieid) 
FROM rating 
GROUP BY movieid 
ORDER BY count(movieid) DESC; 

 Hive Internal Error: java.lang.NullPointerException(null)

我知道SQL查询在sqldeveloper上工作。 因为我还需要子集我创建了一个嵌套循环(使用说明限制没有工作),但是这并不能正常工作或:劳动

SELECT * 
FROM 
(SELECT movieid, COUNT(movieid) 
FROM rating 
GROUP BY movieid 
ORDER BY count(movieid) DESC 
) 
where ROWNUM <= 200; 

我主要就是想订单,然后我会进入下一步,看看子集部分是否工作。任何想法,为什么我得到一个nullpointexception错误?

感谢

回答

3

使用别名:

SELECT movieid, COUNT(movieid) as cnt 
FROM rating 
GROUP BY movieid 
ORDER BY cnt DESC; 

蜂巢(对于一些无法解释的原因)不允许在order by聚合功能。这使我获得了大约一半的我在Hive中编写的查询。我慢慢地想起来。 。 。

+0

该命令的作品与别名,非常感谢! 'SELECT movieid,COUNT(movieid)作为CNT FROM评级 GROUP BY movieid ORDER BY CNT DESC极限200;' – hope288