汇总[什么汇总[汇总的意思]

Oracle提供了GROUPING、GROUPING_ID和GROUP_ID三个函数,解决了引入ROLLUP和CUBE后无法区分summary和NULL值的问题...

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

今天给大家分享一下rollup的知识,也会解释一下rollup是什么意思。如果你碰巧解决了你现在面临的问题,不要';别忘了关注这个网站。如果你有不同的看法和意见,请在评论区积极留言,马上进入正题!

Basicsyntaxofsummary/cube.Theusagesyntaxofsummary/cubeisasfollows:

Select[column,]group_function(column).

from?Table

[where?Conditions]

[Groupingby?[Summary/Cube]?group_by_expression]

[HAVINGHAVING_expression];

[Sortby?Column];

Usingaggregations/cubes,必须具备:1。查询语句是一个组函数查询。最常见的有:AVG、求和、最大、最小、计数等。都是分组函数。。2.Rollup/Cube的使用位置在GROUPBY之后。

除了最基本的语法,Oracle'GROUPBY语句还支持ROLLUP和CUBE语句。。如果是按ROLLUP(A,B,C)分组,先(A,B,C),再(A,B),再(A)。最后,对整个表执行GROUPBY操作。

如果是GROUPBYCUBE(A,B,C),首先,(A,B,C)会被GROUPBY,然后依次是(A,B),(A,C),(A)。、(b、c)、(b)、(c),最后对整个表执行GROUPBY操作。Grouping_id()可以美化效果。

除了使用分组功能还可以使用GROUPING_ID来标识GROUPBY的结果。也可以按Rollup(A,(B,C))分组,按Rollup(B,C)分组。

扩展数据

汇总:按A分组,B会对A和B出现的每一种可能性进行分组。而GROUPBYROLLUP(A,B)会把A和B的每一种可能性都分组,A的每一种可能性都会分组。最后,计算所有的情况。

例如,

rollup(a,b)包括:(a,b),(a),()

rollup(a,b,c)包括:(a,

立方体:类似于ROLLUP,GROUPBYCUBE(A,B)会对A和B的每一种可能性,A的每一种可能性,B的每一种可能性进行分组,最后计算所有情况。

Oracle提供了GROUPING、GROUPING_ID和GROUP_ID三个函数,解决了引入ROLLUP和CUBE后无法区分summary和NULL值的问题。

forexample:Cube(a,b)includes:(a,b),(a),(b),(a)?Cube(a,b,c)includes:(a,b,c),(a,b),(a,c),(b,c),(a),(b),(c)and(xy002).

rollup和CUBE的用法是什么?

?除了最基本的语法,Oracle'GROUPBY语句还支持ROLLUP和CUBE语句。。如果它';s分组依据?如果你ROLLUP(A,B,C),你会先按(A,B,C)分组,再按(A,B)分组,再按(A)分组。最后,对整个表执行GROUPBY操作。

如果是GROUPBYCUBE(A,B,C),首先,(A,B,C)会被GROUPBY,然后依次是(A,B),(A,C),(A)。、(b、c)、(b)、(c),最后对整个表执行GROUPBY操作。Grouping_id()可以美化效果。除了使用GROUPING函数之外,还可以使用GROUPING_ID来标识GROUPBY的结果。

还可以按Rollup(A,(B,C))分组,按A分组?Rollup(B,C),把统计数据组合成你想要的任何形式都非常方便。

Rollup():分组函数可以理解为groupby的简化模式,具体分组模式如下:

Rollup(a,b,c):(a,b),(a),(全表)

Cube():分组函数也是基于groupby,具体分组方式如下:

Cube(a,b,c):(a,b,c),(a,b),(a,c),(b,c),(c)。

准备下面的数据,比较两个函数的区别:

1。准备资料:

2。使用rollup函数查询

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbyrollup(GROUP_id,job,name);

3、使用立方函数:

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbycube(GROUP_id,job,name)

4。比较:上一次查询的数据项数量要少得多。让';让我们来看一下将两个函数从转换为相应的组函数语句:

rollup函数:

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbyrollup(GROUP_id,job,name);

等价于:

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbyGROUP_id,job,name

unionall

selectGROUP_id,job,null,sum(salary)fromGROUP_TESTGROUPbyGROUP_id,job

unionall

selectGROUP_id,null,null,sum(salary)fromGROUP_TESTGROUPbyGROUP_id

unionall

selectnull,null,null,sum(salary)fromGROUP_TEST

多维数据集函数:

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbycube(GROUP_id,job,name);

等价于:

selectgroup_id,job,name,sum(salary)fromGROUP_TESTGROUPbyGROUP_id,job,name

unionall

selectGROUP_id,job,null,sum(salary)fromGROUP_TESTGROUPbyGROUP_id,job

unionall

selectGROUP_id,null,name,sum(salary)fromGROUP_TESTGROUPbyGROUP_id,name

unionall

selectGROUP_id,null,null,sum(salary)fromGROUP_TESTGROUPbyGROUP_id

unionall

selectnull,job,name,sum(薪金)fromGROUP_TESTGROUPbyjob,name

unionall

selectnull,job,null,sum(salary)fromGROUP_TESTGROUPbyjob

unionall

selectnull,null,name,sum(salary)fromGROUP_TESTGROUPbyname

unionall

selectnull,null,null,sum(salary)fromgroup_test

5。可以看出,这两个函数对于汇总统计来说比普通函数要好得多。还有一个匹配函数

分组(**):当**字段为空时,取值为1,当**字段不为空时,取值为0;

从GROUP_TESTGROUPbyrollup(GROUP_id,job,name)中选择GROUP(GROUP_id),job,name,sum(salary);

6。添加一列以直观地显示所有摘要字段:

选择group_ID,job,name,

?Whathappenswhennameisemptyandnvl(group_id,0)=0andjobisempty?"Then"FullTablePolymerization

?Whenthenameisemptyandnvl(group_id,0)=0andthejobisnotempty,then"jobaggregation

"

?Whenthenameisemptyand.Grouping(group_id)=0,andthejobisempty,then"GROUPIDAggregation

?Whennameisnotemptyandnvl(group_id,0)=0andjobisempty?"Then"nameaggregation

?Whenthenameisnotemptyandthegroup(group_id)=0andthejobisempty?Then"GROPName"ispolymerized

?Whenthenameisnotemptyandthegroup(group_id)=1andthejobisnotempty?Then"jobname"isaggregated

?Whenthenameis.Isnullandgroup(group_id)=0andjobisnotnull?Then"groupjob"aggregates

?else

?'三列汇总end,

sum(salary)fromGROUP_TESTGROUPbycube(GROUP_id,job,name);

rollup

n.

几种推广;卷曲;卷曲上升;

[Example]CannotrunSQLqueryoncubewithcustomsummaryformula.

无法使用用户定义的汇总公式对多维数据集执行sql查询

第一版汇总源代码只有1000行左右。

_ollup使用两个库:acorn和magic-string。。为了更好地阅读汇总源代码,您必须对它们有所了解。

_corn是一个JavaScript解析器,它将JavaScript字符串解析成语法抽象树AST。。magic-string

_agic-string也是rollup作者写的一个关于字符串操作的库。

相信在小编介绍了rollup和rollup是什么意思之后。你对rollup了解的更透彻。感谢大家的支持和关注!

上一篇: 08年比特币多少钱一个(2008年比特币多少钱一个)
下一篇: 虚拟货币挖矿上税
《汇总[什么汇总[汇总的意思]》文档下载: PDF DOC TXT

猜你喜欢