电影评分数据分析Hive
任务一
任务描述
计算Happiness Is in the Field (1995)
这部电影的评分次数
,要求显示电影ID
、电影名
、评分次数
。
使用数据库:mydb
用户表:t_user
字段名 | 类型 | 注释 |
---|---|---|
userid | bigint | 用户ID |
sex | string | 性别 |
age | int | 年龄 |
occupation | string | 职业 |
zipcode | string | 邮政编码 |
部分数据如下:
1 F 1 10 48067
2 M 56 16 70072
3 M 25 15 55117
用户表:t_movies
字段名 | 类型 | 注释 |
---|---|---|
movieid | bigint | 电影ID |
moviename | string | 电影名字 |
movietype | string | 电影类型 |
部分数据如下:
1 Toy Story (1995) Animation|Children's|Comedy
2 Jumanji (1995) Adventure|Children's|Fantasy
3 Grumpier Old Men (1995) Comedy|Romance
用户表:t_ratings
字段名 | 类型 | 注释 |
---|---|---|
userid | bigint | 用户ID |
movieid | bigint | 电影ID |
rate | double | 评分 |
times | string | 评分时间戳 |
部分数据如下:
1 48 5.0 978824351
1 150 5.0 978301777
1 1 5.0 978824268
编程要求
计算Happiness Is in the Field (1995)
这部电影的评分次数
,要求显示电影ID
、电影名
、评分次数
。
测试说明
预期输出:
115 Happiness Is in the Field (1995) 5
任务二
任务三
任务四
任务描述
求好片(平均影评分 >= 4.0 )最多的那个年份评分最低的 8 部电影,要求显示年份
、平均影评分
、电影名称
。
编程要求
求好片(平均影评分 >= 4.0)最多的那个年份评分最低的 8 部电影,若评分相同,则按电影名升序,要求显示年份
、平均影评分
、电影名称
。
select substr(moviename,-5,4) s1y,avg(rate) r1a,moviename r1mn from t_movies t1
right join t_ratings t2 on t1.movieid=t2.movieid
inner join
(
select ye,count(ye) cye from (
select substr(moviename,-5,4) ye,avg(rate) ra from t_movies t1
right join t_ratings t2 on t1.movieid=t2.movieid
group by substr(moviename,-5,4),moviename having ra > 4.0
) s1
group by s1.ye
order by cye desc limit 1
) t3
on substr(moviename,-5,4)=t3.ye
group by substr(moviename,-5,4),moviename
order by r1a,r1mn limit 8;
测试说明
预期输出: 结果正确,你的结果为:
1995 1.0 Addiction, The (1995)
1995 1.0 Basketball Diaries, The (1995)
1995 2.0 Blue in the Face (1995)
1995 2.0 Doom Generation, The (1995)
1995 2.0 It Takes Two (1995)
1995 2.0 Mad Love (1995)
1995 2.0 Mighty Morphin Power Rangers: The Movie (1995)
1995 2.0 Something to Talk About (1995)