尚硅谷大数据技术之Hive

2018-12-03  本文已影响6人  尚硅谷教育

10.4.7 统计上传视频最多的用户Top10以及他们上传的观看次数在前20的视频
思路:

  1. 先找到上传视频最多的10个用户的用户信息
    select

from
gulivideo_user_orc
order by
videos
desc limit
10;

  1. 通过uploader字段与gulivideo_orc表进行join,得到的信息按照views观看次数进行排序即可。
    最终代码:
    select
    t2.videoId,
    t2.views,
    t2.ratings,
    t1.videos,
    t1.friends
    from (
    select
    *
    from
    gulivideo_user_orc
    order by
    videos desc
    limit
    10) t1
    join
    gulivideo_orc t2
    on
    t1.uploader = t2.uploader
    order by
    views desc
    limit
    20;
    10.4.8 统计每个类别视频观看数Top10
    思路:
  2. 先得到categoryId展开的表数据
  3. 子查询按照categoryId进行分区,然后分区内排序,并生成递增数字,该递增数字这一列起名为rank列
  4. 通过子查询产生的临时表,查询rank值小于等于10的数据行即可。
    最终代码:
    select
    t1.*
    from (
    select
    videoId,
    categoryId,
    views,
    row_number() over(partition by categoryId order by views desc) rank from gulivideo_category) t1
    where
    rank <= 10;

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。

上一篇下一篇

猜你喜欢

热点阅读