美文网首页Hive
hive grouping sets 等聚合函数

hive grouping sets 等聚合函数

作者: spraysss | 来源:发表于2019-10-20 14:57 被阅读0次

    看到一篇grouping sets的文章,写的比较清晰,搬了过来,原文链接https://www.cnblogs.com/kimbo/p/8445434.html

    函数说明:

    • grouping sets 在一个 group by 查询中,根据不同的维度组合进行聚合,等价于将不同维度的 group by 结果集进行 union all
    • cube 根据 group by 的维度的所有组合进行聚合
    • rollupcube 的子集,以最左侧的维度为主,从该维度进行层级聚合。
    -- 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



    相关文章

      网友评论

        本文标题:hive grouping sets 等聚合函数

        本文链接:https://www.haomeiwen.com/subject/uhfamctx.html