在上次介绍了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