Spark2 Dataset多维度统计cube与rollup】的更多相关文章

val df6 = spark.sql("select gender,children,max(age),avg(age),count(age) from Affairs group by Cube(gender,children) order by 1,2") df6.show +------+--------+--------+--------+----------+ |gender|children|max(age)|avg(age)|count(age)| +------+--…
2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果如下 其中sales表的数据结构如下: 其中stores表的数据结构如下: 1.1 普通方法(容易…
SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析) 2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果…
偶然在网上看到一篇文章,讲到数据汇总,提到了CUBE,感觉有些晦涩,想试着自己表述一下.同时,个人也认为CUBE还是很有用的,对SQL或数据分析感兴趣的小伙伴不妨了解一下,或许有用呢! 先设定个需求,想要分别按[性别].[籍贯].[年龄]或[成绩级别]统计下表中学生的数量,再进一步,需要将这些条件相结合统计,同时满足某两项或更多条件的学生数量.数据表格如下: 我们可以逐层来理解[GROUP BY][WITH ROLLUP][WITH CUBE]如何来完成数据汇总 第一层:[GROUP BY] […
分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);2)初始化表insert into group_test values (10,'Coding', 'Bruce',1000);insert into group_test values (10,'Programmer','Clair',1000);insert…
1.用 CUBE 汇总数据 CUBE 运算符生成的结果集是多维数据集.多维数据集是事实数据的扩展,事实数据即记录个别事件的数据.扩展建立在用户打算分析的列上.这些列被称为维.多维数据集是一个结果集,其中包含了各维度的所有可能组合的交叉表格. CUBE 运算符在 SELECT 语句的 GROUP BY 子句中指定.该语句的选择列表应包含维度列和聚合函数表达式.GROUP BY 应指定维度列和关键字 WITH CUBE.结果集将包含维度列中各值的所有可能组合,以及与这些维度值组合相匹配的基础行中的聚…
转自:https://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8618 CUBE Syntax CUBE appears in the GROUP BY clause in a SELECT statement. Its form is: SELECT … GROUP BY CUBE (grouping_column_reference_list) Example 21-4 CUBE SELECT channe…
在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的幂集(Power Set),要怎么做呢? 当然,你可以用grouping set的语法功能来手动生成幂集,但那需要写一大堆的代码.因此今天我向你展示下grouping set功能支持的2个从句:CUBE和ROLLUP从句. CUBE从句 使用CUBE从句,对于提供的列集,你可以生成所有可能的分组集.…
要使用CUBE,首先要了解GROUP BY. 其实CUBE和ROLLUP区别不太大,只是在基于GROUP BY 子句创建和汇总分组的可能的组合上有一定差别,CUBE将返回的更多的可能组合.如果在GROUP BY子句中有N个列或者是有N个表达式的话,SQLSERVER在结果集上会返回2的N-1次幂个可能组合. CUBE和ROLLUP之间的区别在于: CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP生成的结果集显示了所选列中值的某一层次结构的聚合 ROLLUP就是将GROUP…
1. 案例 用户ID,活动ID,时间,事件类型,省份 u001,A1,2019-09-02 10:10:11,1,北京市 u001,A1,2019-09-02 14:10:11,1,北京市 u001,A1,2019-09-02 14:10:11,2,北京市 u002,A1,2019-09-02 14:10:11,1,北京市 u002,A2,2019-09-02 14:10:11,1,北京市 u002,A2,2019-09-02 15:10:11,1,北京市 u002,A2,2019-09-02…