`
beliveAda
  • 浏览: 112621 次
  • 性别: Icon_minigender_2
  • 来自: 西安
社区版块
存档分类
最新评论

使用rollup函数统计报表合计

阅读更多
  在做报表时,经常会遇到在最后一行将前面所列出的值计算合计,这个时候你会怎么做呢?最初我的想法是再将原来些的sql稍作一些修改,然后求和。这样最起码算出来的数据会比较准确。但这样对数据库压力也比较大,另外以后如果需求有所变动,修改起来也比较麻烦,维护也比较麻烦。l另外一种做法跟这个比较来说,差不多类似。只不过是将需要查询的表都写到一个临时的表中,然后通过union将两个数据合并起来。但这个也会有像第一中的情况。那有没有更简单的方法来实现列算合计呢?
   
    在我苦苦做了几次报表后,经邱tx指点,发现oracle有个rollup函数支持这种求和的运算。rollup函数属于oracle的分析函数。rollup即在某分组上面,有组的合计统计,对一个结果集进行汇总操作。

    具体使用方法如下:
          select nvl(to_char(r.user_id), '合计') as userId,
              sum(r.duration) duration
         from crm_call_rec r
        group by rollup(r.user_id);


    统计出来效果如下:
         userId      duration

1 1 10394298899954.1
2 574 1224.956
3 10001
4 14806 13.234
5 19765 163.672
6 97037 11902.351
7 合计 10394298913258.3
    最后一行的值就是计算出合计的值。

    使用rollup函数,计算出的合计是在最后一行。如果要想合计在第一行,则需要使用另外一个函数Cube函数。效果很是好呀!

      另外需要说明的一点是,这两个函数在db2库中也可以使用。如果有那个db2的库用不了的话,那估计是db2软件版本太低喽!


   
分享到:
评论

相关推荐

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

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

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    group by 后 使用 rollup 子句 总结.doc

    为了更好地管理和呈现查询结果,SQL 还提供了几个辅助函数来配合 `ROLLUP` 的使用: 1. **`grouping()` 函数** 必须接受一列且只能接受一列作为其参数。当该列值为空时返回 1,否则返回 0。 2. **`grouping_id()...

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

    在SQL中,生成统计报表,特别是包含小计与合计的部分,是常见的需求。本文将详细介绍如何利用SQL实现这一功能,主要关注"利用临时表"这一方法,因为这种方法具有逻辑清晰且执行效率高的特点,尽管在大数据量时可能会...

    group by后使用rollup子句总结

    但是,如果我们想要对分组结果进行汇总统计时,使用 `ROLLUP` 子句可以实现这一功能。 ROLLUP 子句的作用 `ROLLUP` 子句可以在 `GROUP BY` 语句中使用,用于对分组结果进行汇总统计。它可以产生多种分组,然后对...

    ROLLUP的数据统计效果

    下面我们将详细讨论`ROLLUP`的数据统计效果以及其在实际应用中的使用。 首先,`ROLLUP` 是`GROUP BY` 的扩展,它允许我们在一个查询中同时生成多个级别的分组结果。在标准的`GROUP BY` 语句中,我们指定一列或多列...

    Oracle ROLLUP和CUBE 用法

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

    Hive开窗函数测试-cube,rollup

    这个文档应该包含了具体的示例和代码,展示了如何在Hive SQL查询中使用窗口函数、cube和rollup。通过实践这些示例,你可以更深入地了解这些功能,并能灵活地应用于你的数据处理任务中。 在进行大数据分析时,了解并...

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

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

    rollup示例

    Rollup 能够将小块代码构建为大块复杂的应用程序,尤其适合库和框架的构建,因为它能够利用树摇(Tree Shaking)技术来去除未使用的代码,从而优化输出的捆绑文件大小。 在“rollup示例”中,我们可以探索如何使用...

    cube与rollup学习总结

    在使用`CUBE`或`ROLLUP`时,为了区分哪些字段被分组了,哪些没有被分组,通常会使用`GROUPING`函数。`GROUPING`函数会根据其参数是否被分组返回一个值:如果参数未被分组,则返回0;如果参数被分组,则返回1。 **...

    oracle的分析函数汇总

    Rollup 函数对数据进行分组和汇总,使用 Rank 函数对数据进行排名,使用 Lag 和 Lead 函数对数据进行延迟和前导操作,使用 Sum 和 Avg 函数对数据进行汇总和平均计算,使用 Ratio_to_Report 函数对数据进行报表处理...

    使用SQL实现小计,合计以及排序

    1. 使用`GROUP BY`配合聚合函数(如`SUM`)进行小计和合计的计算。 2. 使用`WITH ROLLUP`获取所有级别的合计。 3. 利用`ORDER BY`进行排序,可以结合`GROUPING`函数创建的标志来控制汇总行的位置。 4. 使用`JOIN`...

    前端开源库-rollup-helper

    5. `README.md`:项目文档,详细介绍了如何安装、配置和使用"rollup-helper"。 6. `.gitignore`:定义了Git忽略的文件和目录,避免将不必要的文件提交到版本控制系统。 通过"rollup-helper",开发者可以轻松地将...

    Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

    `CUBE`和`ROLLUP`是`WITH`子句中的两个特殊运算符,它们主要用于多维度数据分析和聚合操作,通常在`GROUP BY`语句中配合使用。 1. **CUBE运算符**: `CUBE`生成的结果集包含了所有可能的子集,即所选列中值的所有...

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

    - 与第一个示例类似,但这里使用了嵌套的 Rollup 函数。 - 结果会先按照 `km` 分组,然后在每个 `km` 组内再使用 Rollup 对 `dm` 和 `qkdy` 进行分组。 - 这样的查询结构可以帮助我们更细致地了解各个井号下的代号和...

    Oracle的Rollup用法

    在实际应用中,ROLLUP 子句可以与其他聚合函数结合使用,以便对数据进行更加复杂的聚合和分析。例如,以下是对 grade 和 id 字段进行 rollup 的示例: SQL> SELECT decode(grouping_id(grade,ID),2,'小计',3,'合计'...

    前端开源库-rollup-loader

    在使用Rollup-Loader时,需要注意配置文件的编写,通常是一个名为`rollup.config.js`的文件,其中定义了输入、输出、插件和加载器等设置。例如,你可以这样配置处理CSS文件: ```javascript import css from '...

    前端开源库-rollup-plugin-dts

    总之,`rollup-plugin-dts` 是一个强大的工具,它使得在使用Rollup构建TypeScript项目时,能够方便地生成`.d.ts`文件,提高代码的可读性和可维护性。对于那些注重类型安全和代码质量的前端开发者来说,这绝对是一个...

    采用Rollup构建的前端项目Demo

    Rollup的主要任务是将ES6模块(import/export语法)转换为浏览器可理解的格式,如UMD(Universal Module Definition)、CommonJS或iife(立即执行函数表达式)。它支持各种插件,可以扩展其功能,如处理CSS、图片、...

Global site tag (gtag.js) - Google Analytics