zoukankan      html  css  js  c++  java
  • 电影sql问题

    看的次数多 或者 评分高

    每个用户最喜欢哪个类型的电影

    row_number()

    ratings表中一个电影出现几次?

    一个电影有几种类型?

    类型在movies   评分或者观看次数ratings

    movies join ratings

    //将类型炸开

    select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx;//这是炸开的表

    //观看的次数  类型  id

    select count(*) cnt,r.uid,t.lx

    (select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx ) t,ratings r

    where r.mid=t.mid  

    group by r.uid,t.lx

    //开窗函数

    select t2.uid,t2.lx

    from

    (select row_number() over (partition by t1.uid order by t1.cnt desc) rn,t1.uid,t1.lx

    from

    (select count(*) cnt,r.uid,t.lx

    (select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx ) t,ratings r

    where r.mid=t.mid  

    group by r.uid,t.lx) t1)t2

    where t2.rn=1;

    //uid lx  这个用户最喜欢的类型

    ======================================================================================

    lx m1 m2 m3 

    //电影表

    select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx

    select count(*) cnt,t.lx,r.mid

    (select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx) t,ratings r

    where r.mid=t.mid

    group t.lx=r.mid; 

    select row_number() overs (partition by t1.lx order by t1.cnt desc),t1.lx,t1.mid

    (select count(*) cnt,t.lx,r.mid

    (select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx) t,ratings r

    where r.mid=t.mid

    group t.lx=r.mid) t1

    //

    select t2.lx,t2.mid

    from

    (select row_number() overs (partition by t1.lx order by t1.cnt desc) rn,t1.lx,t1.mid

    (select count(*) cnt,t.lx,r.mid

    (select mid,mname,lx from movies lateral view explode(split(type,"\|")) types as lx) t,ratings r

    where r.mid=t.mid

    group t.lx=r.mid) t1) t2

    每个类型最受欢迎的前三个电影

    类型==类型

  • 相关阅读:
    你的程序够健壮么?我看未必。。。
    POJ 3415 Max Sum of Max-K-sub-sequence (线段树+dp思想)
    Android ARM汇编语言
    关于索引删除的策略IndexDeletionPolicy
    深度学习领域的一些大牛
    框架学习之道:PE框架简介
    PropertyPlaceholderConfigurer类的使用注意
    hdu 4622 Reincarnation (后缀自动机)
    总结showModalDialog在开发中的一些问题
    android端向服务器提交请求的几种方式
  • 原文地址:https://www.cnblogs.com/JBLi/p/10857553.html
Copyright © 2011-2022 走看看