1.rollup会对每个分组进行合计,如:
select
t.a13 as product,
t.a17 as businessline,
sum(t.par_bal) par_bal
from rp_port t
where substr(t.a13, 1, 1) in (1) and rownum<15
group by rollup(t.a13,t.a17)
结果:
product |
businessline |
parbal |
|
|
320245274.4 |
1010101001 |
|
201800000 |
1010101001 |
11 |
201800000 |
1010101008 |
|
97430.25 |
1010101008 |
11 |
97430.25 |
1010102001 |
|
30000000 |
1010102001 |
11 |
30000000 |
1010102002 |
|
75000000 |
1010102002 |
11 |
75000000 |
1010102003 |
|
5096444.11 |
1010102003 |
12 |
5096444.11 |
1020302000 |
|
8251400 |
1020302000 |
41 |
8251400 |
rollup(parm1,parm2...)中,以parm1的角度看分组统计,如:
select
t.a13 as product,
t.a17 as businessline,
sum(t.par_bal) par_bal
from rp_port t
where substr(t.a13, 1, 1) in (1) and rownum<15
group by rollup(t.a17,t.a13)
结果:
product |
businessline |
parbal |
|
|
320245274.4 |
|
11 |
306897430.3 |
1010101001 |
11 |
201800000 |
1010101008 |
11 |
97430.25 |
1010102001 |
11 |
30000000 |
1010102002 |
11 |
75000000 |
|
12 |
5096444.11 |
1010102003 |
12 |
5096444.11 |
|
41 |
8251400 |
1020302000 |
41 |
8251400 |
2.cube即展示出交叉表的效果,cube(parm1,parm2...)参数位置没有影响,如:
select
t.a13 as product,
t.a17 as businessline,
sum(t.par_bal) par_bal
from rp_port t
where substr(t.a13, 1, 1) in (1) and rownum<15
group by cube(t.a17,t.a13)
结果:
product |
businessline |
parbal |
|
|
320245274.4 |
1010101001 |
|
201800000 |
1010101008 |
|
97430.25 |
1010102001 |
|
30000000 |
1010102002 |
|
75000000 |
1010102003 |
|
5096444.11 |
1020302000 |
|
8251400 |
|
11 |
306897430.3 |
1010101001 |
11 |
201800000 |
1010101008 |
11 |
97430.25 |
1010102001 |
11 |
30000000 |
1010102002 |
11 |
75000000 |
|
12 |
5096444.11 |
1010102003 |
12 |
5096444.11 |
|
41 |
8251400 |
1020302000 |
41 |
8251400 |
分享到:
相关推荐
这意味着,对于上述的地区、城市和部门的例子,CUBE会生成所有可能的三列组合,包括地区与城市、地区与部门、城市与部门,以及所有单列、两列和全列的汇总。 语法结构如下: ```sql SELECT column1, column2, ..., ...
而在GROUP BY的基础上,Oracle数据库提供了两种高级分组功能:ROLLUP和CUBE,它们允许我们更灵活地生成汇总数据。 1. ROLLUP(滚联回溯): ROLLUP是GROUP BY的一个扩展,它不仅返回每个单独的分组结果,还会生成...
#### Rollup 与 Cube 的概念介绍 - **Rollup**:用于生成包含所有可能的汇总级别的分组结果集。例如,在两个字段`部门`和`姓名`上使用`ROLLUP`,将会返回所有部门和姓名的组合,每个部门下所有员工的总和,以及整个...
### Oracle中的ROLLUP与CUBE使用详解 在Oracle数据库中,`ROLLUP`与`CUBE`是非常重要的分组函数,被广泛应用于数据汇总、数据分析等场景中。这两个功能可以帮助开发人员快速地对数据进行多维度分析,是开发人员必备...
SQL Server中的用法为group by colomn with [rollup|cube],首先要弄明白rollup 和cube,就要知道group by的用法,group by 为对列进行分组,只展现分组统计的值,而 rollup 为分层次展现,cube 为展现列中所有层次...
### cube与rollup学习总结 在数据库查询语言SQL中,`GROUP BY`子句用于将数据按照一个或多个列进行分组,以便于对每个分组执行聚合操作(如求和、平均值等)。而在`GROUP BY`的基础上,`CUBE`和`ROLLUP`两个关键词...
CUBE与ROLLUP类似,但提供了所有可能的列组合的小计,不仅包括逐级上升的分组,还包括所有可能的交叉分组。例如,如果我们只关心部门和职位的交叉汇总,CUBE可以做到: ```sql SELECT DIVISION, JOB_ID, SUM...
GROUP BY 子句(rollup, cube, grouping sets)实例说明 GROUP BY 子句是 SQL 语言中用于分组数据的关键字,它可以根据一个或多个列对数据进行分组,并对每个分组应用聚合函数,以便计算和输出所需的结果。GROUP BY...
### rollup、cube、grouping sets()的理解及应用 在SQL查询中,当我们需要对数据进行多维度的分组统计时,经常会用到`GROUP BY`子句来完成这一任务。而在更复杂的场景下,为了方便地处理多级别的汇总数据,SQL提供...
`CUBE` 子句与 `ROLLUP` 类似,但是它会生成所有可能的分组组合,而不仅仅是按照层次递减的方式。例如: - 对于 `GROUP BY CUBE(A, B)`,产生的分组包括:`GROUP BY A, B`、`GROUP BY A`、`GROUP BY B` 和 `GROUP ...
`CUBE`和`ROLLUP`是`WITH`子句中的两个特殊运算符,它们主要用于多维度数据分析和聚合操作,通常在`GROUP BY`语句中配合使用。 1. **CUBE运算符**: `CUBE`生成的结果集包含了所有可能的子集,即所选列中值的所有...
### rollup cube grouping sets 的用法 在数据库查询语言 SQL 中,`ROLLUP`, `CUBE`, 和 `GROUPING SETS` 是三个重要的概念,它们主要用于处理多维度数据的汇总和分组问题,使得数据分析更加灵活高效。接下来,我们...
NULL 博文链接:https://wangjingyi.iteye.com/blog/1545090
然而,GROUP BY还可以与GROUPING、ROLLUP和CUBE运算符结合使用,以实现更复杂的多维度汇总功能。这些高级的汇总方法在数据分析和报表生成中非常有用,尤其是在处理大型数据集时。 GROUPING运算符主要用于识别汇总行...
### 八、ROLLUP与CUBE - **ROLLUP**:提供了一种汇总数据的方式,它可以生成所有可能的汇总级别。例如,计算每个客户的订单总额,并给出所有客户的订单总额: ```sql SELECT Customer, OrderNumber, SUM(Cost * ...
本篇将重点探讨Hive中的窗口函数以及如何利用它们进行cube和rollup操作。这些功能极大地增强了数据分析的能力,使得我们可以对数据进行更复杂的聚合。 窗口函数在SQL中是一种非常强大的工具,它允许我们在一个数据...
#### 二、自动汇总函数:ROLLUP与CUBE ##### ROLLUP用法 - **功能**:ROLLUP函数主要用于生成不同层次的数据汇总。例如,在`GROUP BY ROLLUP(A, B, C)`的情况下,系统会依次对`(A, B, C)`、`(A, B)`、`(A)`以及...
- [ROLLUP与CUBE](http://xsb.itpub.net/post/419/29159) - [分析函数使用例子介绍](http://xsb.itpub.net/post/419/44634) 以上内容涵盖了Oracle分析函数的基础概念、工作原理以及两种典型函数的使用方法。希望...