Oracle如何将多次分组求和的数据合并到一张表上?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle如何将多次分组求和的数据合并到一张表上?相关的知识,希望对你有一定的参考价值。
如何将sql嵌套语句中分组数据放到一张表上。求指点,详情看截图。
个人十分费力的看了看你的图,说实话真的很费眼睛。你说的统计,我首先想到的就是分层统计rollup或者cube。
看你的最终需求似乎也是这种要求,唯一就是我不知道你的表结构是不是完全按照分层标题这样设立的,如果是那么只要按照细粒度的顺序摆列就好了。
最大的两个是销售产品成本和冷运成本(字段1),冷运成本则又分为固定成本和变动成本(字段2),再往下则是最小的细粒度(字段3标示出)。
那么只要 group by rollup(字段1,字段2,字段3)就可以了。
这样字段3有值的就是什么水电费,房租费那种,字段3没有值,字段2有值的就是固定成本和变动成本,字段2也没有值的就是销售产品成本和冷运成本。直接就能查出来了。只是rollup的合计在下面,和你最终的表格稍稍有些出入。追问
抱歉,大神,以为这样会比较好看些,因为源码太长超出字数限制了。
确实如您所说分层统计,并且按照顺序进行排列,我如何能把源码发给您过目啊
我举个例子,希望你能看懂
表格:
字段1 字段2 字段3 其他属性字段 数值
select 字段1,字段2,字段3,sum(数值) from 表格 group by rollup(字段1,字段2,字段3)
出来的结果是
字段1 字段2 字段3 数值
字段1 字段2 数值
字段1 数值
也就是说本身就是分层统计的,其中第二行,是第一行的内容的合计(如果你的字段2有两个值,那么就是这两个值的分别的合计),第三行是第二行的合计(字段1有多个值的时候也是一样的),数都查出来了,剩下的就好办了。
多谢大神,您的意思我明白了,代码已经发您私信,目前的问题就是我在字段里面用了case when,在后面自己定义的标签,然后起的别名,如果gourp by rollup后面怎么加字段呀,吧case when复制过去吗?我试了一下好像不行..求指点,小弟刚刚开始学习Oracle还请您见谅
参考技术A 根本不用套写,使用Group By Grouping Sets((全分组字段),(二级分组字段),(三级分组字段)......要多少写多少) 方法就可以实现追问求指教大神,源码已经发您私信。
追答看图效果
用公式很简单,但是想在sql里面直接呈现,不在Excel里面在做计算,如果操作呀,或者有什么函数?小弟刚开始接触Oracle语言,还请大神指教
参考技术C 题主使用的这个是甲骨文数据库软件嘛。。。追问嗯,Oracle数据库
MYSQL中两张表,怎么使用关联查询?
比如:表一中查询列1为1的值,可以得到10条数据,其中列三值分别为1,2,3,4,5,6,7,8,9,10!这些值怎么关联到表二的列1查询?求大神告知
这分几种查询的,有笛卡尔积,就是两张表的数据都查出来,还有左外,右外,显式和隐式,这里给你展示右外查询,就是表二所有数据都显示,select * from npc_vendor right [outer] join item_template on item_template.entry= npc_vendor.entry 参考技术A 例如select ??? from table1 where ??? in (select ??? from table2 wehre ???)你条件太模糊了,你百度一下mysql多级查找学下不难的
以上是关于Oracle如何将多次分组求和的数据合并到一张表上?的主要内容,如果未能解决你的问题,请参考以下文章