常见的报表制作过程中需要对相关分组条件进行分组合计,若借助第三方工具可以很容易实现,但在oracle中提供了现成的rollup函数来帮助我们实现按条件分组合计功能。

例:若要按品牌和商品名称进行分组,同时按品牌统计,可用如下实现方式:

select pds.brand,

dbv.valuename as brandName,

pl.productname,

sum(pds.amount) as amount,

sum(pds.amount * pds.price_purchase) as cost

from purchase_statistic pds,

moobao.product_list pl,

moobao.dict_basetype_value dbv

where pds.productid = pl.productid

and pds.brand = dbv.valueid

and pds.statistic_date >=

to_date('2008-11-16 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

and pds.statistic_date <=

to_date('2008-11-16 23:59:59', 'yyyy-mm-dd hh24:mi:ss')

group by rollup((pds.brand, dbv.valuename), pl.productname))

若需要按品牌、型号、商品名称分组,同时按品牌合计,可用如下实现时方式:

select pds.brand,

dbv.valuename as brandName,

pl.productmodel,

pl.productname,

sum(pds.amount) as amount,

sum(pds.amount * pds.price_purchase) as cost

from purchase_statistic pds,

moobao.product_list pl,

moobao.dict_basetype_value dbv

where pds.productid = pl.productid

and pds.brand = dbv.valueid

and pds.statistic_date >=

to_date('2008-11-16 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

and pds.statistic_date <=

to_date('2008-11-16 23:59:59', 'yyyy-mm-dd hh24:mi:ss')

group by rollup((pds.brand, dbv.valuename), (pl.productmodel,pl.productname)))

两者不同之处在于rollup函数中列的组合,把需要进行合计的列括起来放到rollup的第一组中,其他的分组条件组合起来。而rollup(col1,col2,col3)这种情况是col1和col2分组后合计,col1和col3分组合计,col2和col3分组合计,会出现多个分组合计的结果,最后还有一个总的合计

oracle rollup 合计,oracle中关于分组合计函数rollup使用相关推荐

  1. matlab编程求平均,matlab中的分组平均函数grpstats的用法

    群组函数grpstats 前面讨论到之平均值求法,通常应用于整个数组之值,若要应用到比较复杂的分组平均问题,则必须使用不同的函数才能达成.此项指令之格式如下: means = grpstats(X, ...

  2. oracle分类函数总结,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  3. oracle 条件排序函数,oracle中分组排序函数

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  4. oracle中按数字大小排序函数,oracle中分组排序函数用法

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如: 1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的 ...

  5. oracle求和分组排序,oracle中分组排序函数用法 - 转

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  6. Oracle 分组排序函数

    项目开发中,我们有时会碰到需要分组排序来解决问题的情况: 1.要求取出按field1分组后,并在每组中按照field2排序: 2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...

  7. oracle按层级分组,oracle按照指定列分组合计group by rollup()

    group by rollup() 按分组合计 select grouping(status),status,owner,object_type,count(*) from dba_objects w ...

  8. Oracle报表计算合计函数ROLLUP

    生成报表数据时,经常会加上一行合计,大多时候会用UNION ALL来实现,虽然也能达到目的,但是用UNION  ALL往往效率会比较低,Oracle提供了计算合计的函数ROLLUP SELECT de ...

  9. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)

    原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...

最新文章

  1. 通过浏览器下载服务端图片到客户端
  2. 在Jetson Xavier NX安装中文输入法(googlepinyin中文输入法)
  3. Json and Go
  4. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文
  5. tomcat安装成功页面翻译
  6. 年纪轻轻却突然猝死?数据分析告诉你“猝死”离我们到底有多近?
  7. python闹钟界面程序_利用QT写一个极简单的图形化Python闹钟程序
  8. cad字体安装_史上最全CAD字体库,3000+种字体!没有人能安装全!
  9. 新型脑机接口实现无线通信
  10. Java根据信用卡号区分国际常用的五大信用卡卡种:VISA,Master,AE,DC,JCB.
  11. 现代治理10.0:Diligent研究院报告称,进入董事会的少数女性董事在董事会领导职务的角逐中超越男性董事
  12. Towards More Flexible and Accurate Object Tracking with Natural Language:Algorithms and Benchmark
  13. 搜索引擎下拉食云速捷详细_搜索框下拉优化淹云速捷讲信誉,下拉词上词77云26速26捷...
  14. 打印小册子中断了怎么办
  15. 如何在行业内苟住(老手勿喷)
  16. 如何保证同一个账号同时只能在一个设备登录,账号自动登录
  17. 最佳平方逼近 matlab,最佳平方逼近的Matlab
  18. 三种编程规则:驼峰命名法、帕斯卡命名法、匈牙利名
  19. [转载]livid 写给他自己的
  20. access文件放置服务器,怎么把access数据库放服务器上

热门文章

  1. Java Socket:飞鸽传书的网络套接字
  2. 代码坏的味道07:依恋情结(Feature Envy)
  3. php起始符大全,以下哪种标签不是 PHP 起始 / 结束符
  4. Java调用存储过程(返回:简单类型VARCHAR、自定义对象STRUCT、列表数组VARRAY)
  5. 如何迅速成为Java高手-王维树
  6. 百度云怎么快速清理和谐文件啊
  7. SpringBoot配置多数据库的数据源
  8. mysql connect by用法_oracle connect by 用法
  9. 前端工程师 后段工程师_工程师如何在会计中生存
  10. 衡水中学2021年的高考成绩查询,2021年“百强高中”排名公布,第一名一本率99.5%,衡中进前三...