有个表a有字段c1,c2有记录
2015-03-01 2
2015-03-01 3
2015-03-02 5
想要得到得到如下结果
2015-03-01 4
2015-03-02 5
合计 9
可以通过 select decode(grouping(c1),1,'合计',c1),sum(c2) from a group by rollup(c1)]即可得到,rollup 是用来进行分组的,rollup(c1) 这句话是,的意思是 先让 rollup(c1)进行分组统计出结果,grouping(c1)) 如果 返回值是 1 的话,那么此行是统计出来的,否则就是正常的数据行.
分享到:
相关推荐
### 使用ROLLUP函数生成报表的小计、合计 在数据库查询操作中,经常需要对数据进行分组统计,并在此基础上进一步生成包含小计和总计的报表。这种需求在人力资源管理系统(如文中提到的eHR系统)以及其他各类业务...
### SQL语句中Group BY 和Rollup以及Cube用法 #### Group BY 子句 `GROUP BY`子句是SQL查询中的一个非常重要的部分,它用于将数据表中的行按照一个或多个列进行分组,使得可以对每个分组执行聚合函数(如SUM、...
GROUP BY 子句有多种形式,本文将通过实例来说明 GROUP BY 子句的三种样式:GROUP BY、GROUP BY ROLLUP、GROUP BY CUBE、GROUP BY GROUPING SETS。 1. GROUP BY 语句 GROUP BY 语句是最基本的分组语句,它可以根据...
而在GROUP BY的基础上,Oracle数据库提供了两种高级分组功能:ROLLUP和CUBE,它们允许我们更灵活地生成汇总数据。 1. ROLLUP(滚联回溯): ROLLUP是GROUP BY的一个扩展,它不仅返回每个单独的分组结果,还会生成...
在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...
`GROUP BY` 语句是SQL中用于对数据进行分组的重要工具,通常与聚合函数如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等一起使用。其基本概念是根据一个或多个列的值将数据分为不同的组,然后对每个组应用聚合函数以得出每...
优化 Group By 查询速度的...通过本实例,我们可以总结出一些有价值的经验:在优化 Group By 查询时,需要将聚合函数用到的字段一起设置为联合索引;需要充分测试和分析查询结果;需要遵循一定的思路来优化查询;等等。
ROLLUP操作是GROUP BY的一个扩展,它允许你生成一个包含不同层次的分组结果,从最细粒度的分组到最粗粒度的分组,类似于数据透视表的逐级展开。例如,如果你有一个按地区、城市和部门分组的数据集,使用ROLLUP可以...
- 当使用 `GROUP BY` 时,`SELECT` 语句中未包含在聚合函数内的列必须出现在 `GROUP BY` 子句中。例如,`SELECT department, COUNT(employee) FROM employees GROUP BY department` 会返回每个部门的员工数量。 - ...
在 Oracle 中,ROLLUP 子句可以与 GROUP BY 子句配合使用,以便对数据进行分组和聚合。ROLLUP 子句可以指定一个或多个字段,用于对数据进行分组和聚合。 例如,以下是对 grade 字段进行 rollup 的示例: SQL> ...
`GROUP BY`子句通常与聚合函数(如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`)一起使用,用于计算每个组的汇总信息。例如,以下查询返回每个职位的最高薪水: ```sql SELECT job, MAX(sal) FROM emp GROUP BY job; ...
2. `GROUP BY`:这是用于分组数据的关键字,常与聚合函数(如SUM、COUNT、AVG等)一起使用。当你需要根据某个字段的值对数据进行分类并计算每个类别的总和、平均值等时,就会用到`GROUP BY`。例如,`SELECT ...
GROUP BY ROLLUP(a.dname); ``` `ROLLUP(a.dname)`会生成以下结果集:每个部门的工资总和((a.dname)),所有部门的工资总和(( ))。 当增加更多的分组列时,`ROLLUP`会继续按列的顺序进行逐级汇总。例如,如果...
本文将详细介绍`CUBE`和`ROLLUP`的使用方法,并通过具体的例子来说明如何运用这两个函数。 #### CUBE `CUBE`函数允许我们获取所有可能的分组组合。它会返回包括所有维度的所有可能的子集结果,即所有可能的组合...
- **功能**:ROLLUP函数主要用于生成不同层次的数据汇总。例如,在`GROUP BY ROLLUP(A, B, C)`的情况下,系统会依次对`(A, B, C)`、`(A, B)`、`(A)`以及整个表进行分组操作。 - **示例**:假设有一个销售数据表,...
在"ORACLE学习笔记系列(15)使用扩展的 GROUP BY 子句"这篇博文中,作者深入探讨了GROUP BY子句的高级用法,特别是如何利用扩展功能来处理更复杂的查询需求。 在标准的GROUP BY语句中,我们通常会指定一列或多列,...
1. **基础语法**:包括变量声明、数据类型、控制结构(如If...Then,For...Next,While...Wend)以及函数和子过程的使用。 2. **工作簿和工作表操作**:如何创建、打开、保存和关闭工作簿,以及如何选择、复制、...
ROLLUP操作与GROUP BY语句一起使用,可以生成数据的上卷(roll-up)或聚合视图,即从最细粒度的数据逐层向上汇总到最粗粒度的级别。下面我们将详细探讨SQL ROLLUP的用法以及其在生成小计和总计时的作用。 1. 单一...
下面将详细介绍`GROUP BY`的各种用法,包括`ALL`, `CUBE`, `ROLLUP`, `COMPUTE`和`COMPUTE BY`。 1. **基础的GROUP BY**: 基础的`GROUP BY`语句用于将数据按指定列分组,然后对每个组应用聚合函数。例如: ```...