所以对这样的新的需求觉得一时無从下手询问了同事后才知道,可以使用Rollup统计函数(也称分析函数)来解决这个问题查询资料后一试,发现果然可以在此简单介绍一下。
Rollup运算符(在生成包含小计和合计的报表时很有用)是Select和Group By子句的一部分它生成的结果集中,即包括每个项目的明细行也包括每个组的汇總行汇总行显示了该组的聚合合计。Group
By子句可用于生成只包含各组的聚合而不包含其明细行的结果使用方法为:Select A, B,
下面介绍一下Rollup的统计规則,比如如果要对(A,B,C)三个字段进行Rollup汇总统计的话那么它会先对(A,B,C)三个字段进行汇总统计,然后对(A,B)字段汇总统计并空出字段C对应的位置然后對(A)字段进行汇总统计并空出B、C字段对应的位置,而空出的位置我们可以使用Grouping函数来进行判断如果为“1”,则说明该空值为Rollup制造否则为“0”。
通过上面的描述可以看出,当将Rollup的字段从上往下列出时它会每次将最后一个字段去掉,然后取前面的字段进行汇总统计所以稱为上卷统计,例:
说到了Rollup就不得不说下Cube因为Cube与Rollup功能相似但更为复杂,他们的使用方法都是一样的但是生成结果集却有所不同。再以仩面的对(A,B,C)三个字段进行Cube汇总统计为例那么它会先对(A,B,C)三个字段进行汇总统计,然后分别对(A,B)、(A,C)、(B,C)字段进行汇通统计并空出未进行汇总统计的芓段对应的值然后分别对(A)、(B)、(C)进行汇总统计并空出未进行汇总统计的字段对应的值。