在上次介绍了Sql中的窗口分析函数,本次在Hive上进行实操说明CUBE,ROLLUP,GROUPING SETS等分析函数。
对于这些函数子句可以认为是对于 Hive中的 增强型聚合函数 ,可以使用它们构建小型的多维分析模型
- CUBE创建列集维度的所有可能组合的小计。一旦在一组维度上计算了一个立方体,我们就可以得到这些维度上所有可能的聚合问题的答案
GROUP BY a, b, c WITH CUBE 相当于如下两种表示 GROUP BY a, b, c GROUPING SETS ( (a, b, c), (a, b), (b, c), (a, c), (a), (b), (c), ( ))
- ROLLUP子句与GROUP BY一起用于计算维度层次结构级别的聚合
GROUP BY a, b, c with ROLLUP 是构建从 a 钻探到b钻探到c的层次结构数据 相当于 GROUPING SETS ( (a, b, c), (a, b), (a), ( ))
普通的 聚合函数
SELECT CategoryName , SalesCountry , sum(SalesAmount) SalesAmount FROM InternetSales GROUP BY CategoryName , SalesCountry
常规Grouping by

本文介绍Hive中CUBE, ROLLUP及GROUPING SETS等分析函数的使用,它们是增强型聚合函数,能构建小型多维分析模型。CUBE生成所有列组合的小计,ROLLUP处理维度层次结构的聚合。通过GROUPING SETS可减少复杂UNION ALL语句。同时,文章讨论了如何利用GROUPING__ID解决聚合过程中的NULL值问题。"
133068061,20037423,Django一键登录实现教程,"['Django', '用户认证', 'Web开发']
最低0.47元/天 解锁文章
783

被折叠的 条评论
为什么被折叠?



