`
1988xuxuxu
  • 浏览: 20858 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

ROLLUP 分组查询总计

 
阅读更多
ROLLUP,是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。

CUBE,也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。

select * from  a;
1 a 1 1
2 a 2 2
3 b 3 3
4 b 4 4

SELECT grade, ID, SUM(num)
  FROM a
GROUP BY ROLLUP(grade, ID)
order by grade, ID;



SELECT grade, ID, SUM(num)
  FROM a
GROUP BY ROLLUP(grade, ID)
order by grade, ID;



1 a 1 1
2 a 2 2
3 a 3
4 b 3 3
5 b 4 4
6 b 7
7 10

SELECT grade, ID, SUM(num)
  FROM a
GROUP BY CUBE(grade, ID)
order by grade, ID;

1 a 1 1
2 a 2 2
3 a 3
4 b 3 3
5 b 4 4
6 b 7
7 1 1
8 2 2
9 3 3
10 4 4
11 10

分享到:
评论

相关推荐

    Sequelize中用group by进行分组聚合查询

    在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...

    使用ROLLUP函数生成报表的小计、合计

    在数据库查询操作中,经常需要对数据进行分组统计,并在此基础上进一步生成包含小计和总计的报表。这种需求在人力资源管理系统(如文中提到的eHR系统)以及其他各类业务系统中非常常见。本文主要探讨如何利用SQL中的...

    Oracle的Rollup用法

    ROLLUP 子句可以将查询结果按照一个或多个字段进行分组,并且可以生成子总计和总计。 在 Oracle 中,ROLLUP 子句可以与 GROUP BY 子句配合使用,以便对数据进行分组和聚合。ROLLUP 子句可以指定一个或多个字段,...

    rollup 在中石油开发数据库系统的使用实例

    ##### 实例一:基础的 Rollup 分组查询 ```sql SELECT NVL(km, '未知'), dm, NVL(qkdy, '无'), COUNT(jh) FROM daa01 WHERE km IS NOT NULL GROUP BY ROLLUP(km, dm, qkdy); ``` **解析**: - `NVL` 函数用于将...

    Oracle ROLLUP和CUBE 用法

    例如,如果你有一个按地区、城市和部门分组的数据集,使用ROLLUP可以得到以下结果:地区级别、城市级别、部门级别以及所有数据的总计。ROLLUP的关键在于它会生成一个“格子”(或称为超集),其中包含所有可能的组合...

    C#在分组查询中使用ROLLUP

    本文将详细介绍如何在C#中利用SQL的ROLLUP扩展来执行复杂的分组查询,并展示其在dataGridView控件中的应用。 ROLLUP是SQL中的一个扩展操作,它允许我们在GROUP BY子句中生成多级汇总,从而得到一个“格子”或“透视...

    Sql Server 分组统计并合计总数及WITH ROLLUP应用

    这意味着如果你有多个分组列,`ROLLUP`将依次提供每个列的总计,直到所有列的总计。 在给出的例子中,如果`[Source]`有三个不同的值,`WITH ROLLUP`将产生以下层次: 1. 每个`[Source]`的总计 2. 所有`[Source]`的...

    Oracle分组统计

    Rollup 是一种统计方法,它可以对数据进行分组和聚合计算,但它只能对单个列进行分组。Cube 是一种特殊的分组统计方法,它可以对数据进行多维度分组和聚合计算。 无论是 Grouping Sets、Rollup 还是 Cube,分组统计...

    rollup及cube的使用

    当我们在查询中使用`ROLLUP`时,它会按照指定的列进行分组,并且还会返回每一级的汇总结果。下面通过具体的例子来详细了解`ROLLUP`的功能: 假设我们有一个名为`t`的表,包含以下字段:`index_type`(索引类型)、`...

    oracle中聚合函数的扩展使用(ROLLUP CUBE、GROUPING()函数与ROLLUP、CUBE的结合使用等)

    当我们需要更复杂的分组和汇总信息时,可以使用扩展的聚合功能,如ROLLUP、CUBE以及GROUPING()和GROUPING_ID()函数。这些功能允许我们生成多层次的总计和小计,为数据分析提供了极大的灵活性。 1. ROLLUP子句: ...

    分组后分组合计以及总计SQL语句(稍微整理了一下)

    - 在不支持`COMPUTE`的系统中,可以通过子查询或`WITH ROLLUP`选项实现。例如: ```sql SELECT COUNT(*) FROM ( SELECT 分组字段 FROM 表 GROUP BY 分组字段 ) AS 别名 ``` 或 ```sql SELECT COUNT(*) ...

    sql rollup用法 小计汇总

    总结来说,SQL ROLLUP是实现多级汇总的强大工具,它可以自动生成各级别的小计和总计,无需编写复杂的嵌套查询。在处理大量数据并需要快速获取不同层次汇总信息时,ROLLUP功能显得非常实用。通过对GROUP BY语句的扩展...

    rollup cube grouping sets的用法

    在数据库查询语言 SQL 中,`ROLLUP`, `CUBE`, 和 `GROUPING SETS` 是三个重要的概念,它们主要用于处理多维度数据的汇总和分组问题,使得数据分析更加灵活高效。接下来,我们将详细介绍这三个概念的原理、语法以及...

    SQL 数据分析:销售数据的小计/合计/总计以及数据透视表

    文章目录小计、合计与总计多维度交叉统计自定义统计维度数据透视表总结 学习过 SQL 的人都知道,使用聚合函数(AVG、SUM、COUNT、MIN/MAX 等)和分组操作(GROUP BY)可以对数据进行基本的统计分析,例如统计公司...

    用SQL实现统计报表中的小计与合计的方法详解

    这种方法通过创建临时表、分配唯一标识符、遍历分组并计算总计,以及最后的合并展示,有效地实现了报表的生成。如果需要优化,可以考虑进一步调整代码以减少内存消耗,或者考虑使用其他方法,如GROUPING SETS或...

    SQLServer 数据库的数据汇总完全解析(WITH ROLLUP)

    WITH ROLLUP是SQL Server提供的一种高级分组方法,它允许你在查询结果中生成类似Excel透视表的层次结构汇总。当你在GROUP BY子句中使用WITH ROLLUP时,它不仅会按照指定的列进行分组,还会自动生成每个分组的汇总行...

    oracle调优参考

    `CUBE`和`ROLLUP`是SQL的聚合函数扩展,它们允许在GROUP BY子句中创建多级分组,从而提供更灵活的数据汇总方式。 1. **CUBE**子句: `CUBE`用于生成所有可能的子集,包括单个列、两列组合、三列组合等,直到所有...

    ORACLE学习笔记系列(15)使用扩展的 GROUP BY 子句

    这将返回column1和column2的所有组合,以及每个分组的计数,最后还会有针对所有数据的总计行。 2. **GROUPING SETS**: 这个功能可以替代WITH CUBE和WITH ROLLUP,让你能更精确地指定需要的分组组合。GROUPING ...

Global site tag (gtag.js) - Google Analytics