zoukankan      html  css  js  c++  java
  • hive grouping sets 等聚合函数

    函数说明:

    grouping sets
    在一个 group by 查询中,根据不同的维度组合进行聚合,等价于将不同维度的 group by 结果集进行 union all
    cube
    根据 group by 的维度的所有组合进行聚合
    rollup
    是 cube 的子集,以最左侧的维度为主,从该维度进行层级聚合。

    -- grouping sets 
    select 
           order_id,
           departure_date,
           count(*) as cnt
      from ord_test
     where order_id=410341346
     group by order_id,
           departure_date
     grouping sets (order_id,(order_id,departure_date))
    ;
    
    ---- 等价于以下
    group by order_id
    union all
    group by order_id,departure_date
    
    -- cube
    select 
           order_id,
           departure_date,
           count(*) as cnt
      from ord_test
     where order_id=410341346
     group by order_id,
           departure_date
     with cube
     ;
    
    ---- 等价于以下
    select count(*) as cnt from ord_test where order_id=410341346
    union all
    group by order_id
    union all
    group by departure_date
    union all
    group by order_id,departure_date
    
    -- rollup
    select 
           order_id,
           departure_date,
           count(*) as cnt
      from ord_test
     where order_id=410341346
     group by order_id,
           departure_date
     with rollup
     ;
    
    ---- 等价于以下
    select count(*) as cnt from ord_test where order_id=410341346
    union all
    group by order_id
    union all
    group by order_id,departure_date

    结果:grouping_sets, cube, rollup

  • 相关阅读:
    Linux目录图解
    Linux-Monitor-Tools
    常用系统及工具下载
    vim 编辑器常规使用
    Win10 安装.NET framework 3.5
    Apache 2.4.6 新增虚拟目录
    html5
    CentOS 7 修改ssh端口
    CentOS7 设置密码复杂度
    CentOS 7安装 hping
  • 原文地址:https://www.cnblogs.com/kimbo/p/8445434.html
Copyright © 2011-2022 走看看