zoukankan      html  css  js  c++  java
  • hive 分组排序函数 row_number() over(partition by " " order by " "desc

    语法: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

  • 相关阅读:
    最长上升子序列
    system call filters failed to install; check the logs and fix your configuration or disable system c
    linux centos 7 安装vnc远程服务
    Delphi XE 错误提示: [MySQL]-314. Cannot load vendor library [libmysql.dll orlibmysqlld.dll]
    MYSQL 修改密码的几种方式
    MySQL 常用操作和字段类型
    Java 获取GUID
    C# 获取GUID
    C++ 获取GUID
    Delphi GUID[2] 获取GUID值的方式
  • 原文地址:https://www.cnblogs.com/mobiwangyue/p/8328758.html
Copyright © 2011-2022 走看看