电影评分数据分析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)

results matching ""

    No results matching ""