我在Hive中创建了一个表格(电影),如下所示( id,名称,年份,评分,观看次数)1,The Nightmare Before Christmas,1993,3.9,4568
2,The Mummy,1932,3.5,4388
3,Orphans of the Storm,1921,3.2,9062
4,The Object of Beauty,1991,2.8,6150
5,Night Tide,1963,2.8,5126
6,One Magic Christmas,1985,3.8,5333
7,Muriel's Wedding,1994,3.5,6323
8,Mother's Boys,1994,3.4,5733
9,Nosferatu: Original Version,1929,3.5,5651
10,Nick of Time,1995,3.4,5333
我想编写一个配置单元查询以获取观看次数最高的电影的名称。
select name,max(views) from movies;
但这给我一个错误
FAILED: Error in semantic analysis: Line 1:7 Expression not in GROUP BY key name
但是使用名称进行分组会给我完整的列表(这是预期的)。
我应该对查询进行哪些更改?
最佳答案
很可能有一种更简单的方法可以做到这一点。
select name
from(
select max(views) as views
, name
, row_number() over (order by max(views) desc) as row_num
from movies
group by name
) m
where row_num = 1
关于hadoop - 无法使用配置单元聚合功能获得预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021904/