hadoop - 无法使用配置单元聚合功能获得预期的输出

标签 hadoop hive hql

我在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/

相关文章:

java - 如何避免 Hibernate 中的旧式外部连接(+)?

join - 优化多表连接的配置单元查询

hadoop - HIVE-时差格式

hadoop - 我需要一个工具来分析日志 Hadoop

python - 检查用python编写的配置单元udf中的错误

hadoop - 如何在配置单元中的字符串数据类型以外的列中插入空值而不是 NULL

spring-data-jpa - 通过集合中的精确匹配查找实体

java - 如何测试 Hibernate HQL 查询?

hadoop - 如何将Gobblin输出分成30分钟的分区?

mysql - 如何将大型 mysql 转储导入 hadoop?