`
jielin000307
  • 浏览: 23904 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

学习了oracle的rollup,grouping_id函数

阅读更多
表 div
字段
divNo,divName,mcount,rcount

分组查询
select divNo,sum(mcount) from div group by divNo,divName
1   20
2   10
3   10
4   10


想要得到这些组的合计信息
可以这样写
select decode(grouping_id,'3','合计',divNo) divNoItem,sum(mcount) from div group by rollup((divNo,divName))

1    20
2    10
3    10
4    10
合计 50

如果这样写
select decode(grouping_id,'3','合计',divNo) divNoItem,sum(mcount) from div group by rollup(divNo,divName) ,少个括号
结果又不一样了。
分享到:
评论

相关推荐

    grouping or grouping_id in ORACLE

    在Oracle数据库中,`GROUPING` 和 `GROUPING_ID` 是两种非常有用的函数,它们能够帮助用户更好地理解和组织聚合查询的结果。这两种函数主要用于处理复杂的分组情况,尤其是在使用`ROLLUP` 或 `CUBE` 时更为显著。...

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

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

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

    `GROUPING_ID`函数返回一个整数值,该值标识了当前行是基于哪个字段的汇总。 示例如下: ```sql SELECT DECODE(GROUPING_ID(ACCESSIONSTATE), 1, '合计', TO_CHAR(ACCESSIONSTATE)) AS ACCESSIONSTATE, COUNT(*)...

    Oracle中用GROUPING SETS分组自定义汇总

    `GROUPING_ID`函数可以用来标识当前行属于哪个分组集,这对于解析结果集非常有用。 总的来说,`GROUP BY GROUPING SETS`在处理多维度分析时提供了强大的工具,允许我们定制汇总级别,同时保持查询性能的高效。它...

    Oracle ROLLUP和CUBE 用法

    Oracle数据库中的ROLLUP和CUBE是两种用于生成数据汇总的SQL操作,它们在数据分析和报告制作中非常有用。本文将详细介绍这两个概念以及如何在实际应用中使用它们。 首先,我们来理解`ROLLUP`。ROLLUP操作是GROUP BY...

    Oracle的Rollup用法

    SQL> SELECT decode(grouping_id(grade,ID),2,'小计',3,'合计',grade) grade, decode(grouping_id(grade,ID),1,'小计',3,'合计',ID) ID, SUM(num) FROM a GROUP BY ROLLUP(grade,ID); 这条 SQL 语句将对 grade 和...

    oracle中的grouping

    在Oracle数据库中,`GROUPING`函数被广泛应用于复杂的分组查询之中,尤其是在存储过程的开发中。本文将详细解释`GROUPING`函数的使用方法及其应用场景,并通过一个示例来帮助理解其工作原理。 #### 一、`GROUPING`...

    rollup及cube的使用

    #### GROUPING函数的使用 在上面的例子中,还涉及到了`GROUPING`函数,它可以用来标识当前行是否是汇总行。如果某个字段出现在`ROLLUP`或`CUBE`子句中,则对应的`GROUPING`值为1,表示该行为汇总行;否则为0,表示...

    《Pro Oracle SQL》Chapter7 --7.6Eliminate NULLs with the GROUPING() Function

    在这个查询中,GROUPING SETS((product_id, supplier_id), (product_id))包含了两层分组:一层是按产品ID和供应商ID分组,另一层只按产品ID分组。在结果集中,is_null_group列会告诉我们每个行的supplier_id是否被...

    oracle 分组函数

    6. GROUPING SETS, CUBE, ROLLUP:这些是更高级的分组功能,可以生成多个分组组合,用于多维数据分析。 三、使用注意事项 1. 分组函数不能与非分组列一起出现在SELECT语句的非聚合表达式中,除非该列被包含在`...

    Oracle_Database_11g完全参考手册.part3/3

    14.3 使用ROLLUP、GROUPING和CUBE 14.4 家族树和COlLrlectby 14.4.1 排除个体和分支 14.4.2 向根遍历 14.4.3 基本规则 第15章 更改数据:插入、更新、合并和删除 第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 ...

    Oracle_Database_11g完全参考手册.part2/3

    14.3 使用ROLLUP、GROUPING和CUBE 14.4 家族树和COlLrlectby 14.4.1 排除个体和分支 14.4.2 向根遍历 14.4.3 基本规则 第15章 更改数据:插入、更新、合并和删除 第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 ...

    oracle分析函数介绍

    Rollup函数用于生成多级汇总数据,它可以创建一个类似于SQL GROUP BY语句的“GROUP BY GROUPING SETS”的效果。例如,可以计算每个区域、每个网络类型以及整个数据集的总费用。 Cube函数则更进一步,它不仅提供...

    Oracle查看增加表空间语句

    其中使用了`ROLLUP`和`GROUPING`函数来实现对所有表空间或单个表空间的统计。 **示例查询:** ```sql SELECT Substr(Ta.Tablespace_Name, 1, 10) "空间名称", To_Char(Ta.Define_Size / 1048576, '999990.999') ...

    分析函数,数据库开发

    - **功能**:GROUPING_ID函数用于标记由ROLLUP或CUBE产生的汇总结果,便于识别汇总级别。 - **示例**:在使用`GROUP BY ROLLUP(Category, Brand, Model), GROUPING_ID(Category, Brand, Model)`时,可以通过GROUPING...

    Oracle 10g培训经典_中文版

    - Les17_对 GROUP BY 子句的扩展.ppt可能深入讨论了GROUP BY的高级用法,如HAVING子句和ROLLUP/CUBE/GROUPING SETS。 通过这套培训资料,学习者可以从基础的SQL语法到复杂的数据库管理技巧逐步进阶,了解并掌握...

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

    GROUPING函数可以用来确定某个值是否是由于GROUP BY或GROUPING SETS产生的汇总行。它返回1表示汇总,0表示具体行。 在实际应用中,这些扩展功能可以帮助我们更有效地分析数据,比如在报告和统计分析中。通过熟练...

    Oracle函数及其查询.pptx

    Oracle 函数是指在 Oracle 数据库中可以使用的一系列函数,包括单行函数、聚合函数、日期函数、类型转换函数等。这些函数可以在 SELECT 语句、WHERE 子句、ORDER BY 子句、START WITH 子句、CONNECT BY 子句等中使用...

    Oracle 10g中的高级SQL函数

    `GROUP BY` 和 `HAVING` 子句是SQL中的基础工具,但在Oracle 10g中,你可以使用 `CUBE()`, `ROLLUP()`, `GROUPING SETS()` 进行多维度分析,创建更复杂的分组。`CONNECT BY` 用于构建层次结构,如组织结构或产品分类...

Global site tag (gtag.js) - Google Analytics