**7. 各种类型电影中评价最高的5部电影-- 求每个电影 的平均分 -- 求每种电影类型根据平均分排序-排序号-- hive
时间: 2024-09-11 09:11:46 浏览: 81
数据挖掘-基于用户的协同过滤算法实现电影推荐-皮尔逊系数和欧氏距离
要使用Hive查询不同电影类型中评分最高的电影,并计算每部电影的平均分,以及根据电影类型的平均分进行排序,可以按照以下步骤进行:
首先,确保你的数据表格式类似于以下的表格,这个表格包含了电影类型、电影名称和平均分:
```
+----------------+-----------------+----------------+
| movie_type | movie_name | average_score |
+----------------+-----------------+----------------+
| Action | Die Hard | 8.2 |
| Comedy | Meet the Parents| 7.8 |
| Drama | Schindler's List| 8.9 |
| Action | The Matrix | 8.7 |
| Sci-Fi | Star Wars | 8.7 |
| Comedy | Anchorman | 6.9 |
| Drama | The Godfather | 9.2 |
| Action | Mad Max Fury Road| 8.1 |
| Comedy | Zoolander | 6.5 |
| Sci-Fi | Inception | 8.8 |
+----------------+-----------------+----------------+
```
接下来,可以使用HiveQL来编写查询语句,获取每种类型电影中平均分最高的5部电影以及它们的平均分:
```sql
WITH RankedMovies AS (
SELECT
movie_type,
movie_name,
average_score,
RANK() OVER (PARTITION BY movie_type ORDER BY average_score DESC) as rank
FROM
movie_ratings
)
SELECT
movie_type,
movie_name,
average_score
FROM
RankedMovies
WHERE
rank <= 5;
```
为了对每种类型的电影按平均分排序,可以使用如下查询:
```sql
SELECT
movie_type,
AVG(average_score) as avg_score
FROM
movie_ratings
GROUP BY
movie_type
ORDER BY
avg_score DESC;
```
在这个查询中,首先使用`AVG`函数计算每种电影类型的平均分,然后使用`GROUP BY`将电影按照类型分组,最后用`ORDER BY`对这些分组按平均分进行降序排序。
阅读全文