zoukankan      html  css  js  c++  java
  • Hive中的Row_Number()使用

    语法:row_number() over (partition by 字段a order by 计算项b desc ) rank 

    --这里rank是别名

    partition by:类似hive的建表,分区的意思;

    order by :排序,默认是升序,加desc降序;

    这里按字段a分区,对计算项b进行降序排序

    实例:

    要取top10品牌,各品牌的top10渠道,各品牌的top10渠道中各渠道的top10档期 

    1、取top10品牌

    select 品牌,count/sum/其它() as num  from table_name order by num limit 10;

     2、 取top10品牌下各品牌的top10渠道        

    select 

              a.*

    from

              (

                      select 品牌,渠道,count/sum/其它() as num row_number() over (partition by 品牌 order by num desc ) rank  

                       from table_name

                       where 品牌限制条件

                       group by 品牌,渠道

              )a

    where 

              a.rank<=10

     3、 取top10品牌下各品牌的top10渠道中各渠道的top10档期

    select 

              a.*

    from

              (

                      select 品牌,渠道,档期,count/sum/其它() as num row_number() over (partition by 品牌,渠道 order by num desc ) rank  

                       from table_name

                       where 品牌,渠道 限制条件

                       group by 品牌,渠道,档期

              )a

    where 

              a.rank<=10

  • 相关阅读:
    SE知识整理——泛型
    IDEA 运行 SpringMVC 项目分发控制器出现404解决方案。
    快速幂/欧拉降幂
    Leetcode(双指针专题)
    剑指offer
    ns3参考
    网络知识1:最后一公里/WiMax / 4G
    备份2
    shell入门
    ns3_gdb:协议里的函数是怎么被调用的
  • 原文地址:https://www.cnblogs.com/peizhe123/p/9668455.html
Copyright © 2011-2022 走看看