• 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

  • 相关阅读:
    点击两次返回键程序退出
    权限android.permission.WRITE_EXTERNAL_STORAGE 内外置sd卡写权限
    java Calendar add方法
    MeasureSpec简介
    android bitmap转换
    IOS键盘隐藏和显示调用
    内存溢出
    UIView递归
    caLayer
    C++算法
  • 原文地址:https://www.cnblogs.com/kimbo/p/8445434.html
Copyright © 2020-2023  润新知