rollup配合goup by使用,照小组进行分组,同时求总计。可以提供信息汇总功能(类似于"小计")
ROLLUP在数据统计和报表生成过程中带来极大的便利
rollup操作---按GROUP BY ROLLUP()本身是分组统计求和的意思
如果是ROLLUP(A, B, C)的话,
首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。
下面是一个简单例子:
1、不使用group by 分组
查询各部门各职位的工资情况
select job,deptno,sal
from emp
order by job, deptno
JOB DEPTNO SAL
ANALYST 20 3000.00
ANALYST 20 3000.00 --->group by 之后 ANALYST 20 6000.00
CLERK 10 1300.00
CLERK 20 800.00
CLERK 20 1100.00
CLERK 30 950.00
MANAGER 10 2450.00
MANAGER 20 2975.00
MANAGER 30 2850.00
PRESIDENT 10 5000.00
SALESMAN 30 1250.00
SALESMAN 30 1500.00
SALESMAN 30 1250.00
SALESMAN 30 1600.00
2、使用group by 分组
select job,deptno,sum(sal) total_sal
from emp
group by rollup(job,deptno);
查询员工表,对各个部门的各个职位进行分组,对工资进行小计和总计
JOB DEPTNO TOTAL_SAL
CLERK 10 1300
CLERK 20 1900
CLERK 30 950
CLERK 4150
ANALYST 20 6000
ANALYST 6000
MANAGER 10 2450
MANAGER 20 2975
MANAGER 30 2850
MANAGER 8275
SALESMAN 30 5600
SALESMAN 5600
PRESIDENT 10 5000
PRESIDENT 5000 -->PRESIDENT职位总计
29025 --->总计
如果year不想累加,可以写成
Select year,month,area,sum(total_sale) from SaleOrder group by year, rollup(month,area)
Grouping用法
Grouping是用来判断当前Column是否是一个合计列,1为yes,
Select Decode(Grouping(area),1,'所有地区',area) area,
Decode(Grouping(month),1,'所有月份',month), sum(money)
From SaleOrder
Group by RollUp(area,month);
--如果是一个合计列,则用Decode把它转为"所有月份" 、'所有地区'
rollup 如何去掉最后一行的总统计
使用:grouping_id
select job,deptno,sum(sal) total_sal from emp group by rollup(job,deptno)
having grouping_id(job,deptno)<=1
查询的结果就会把最后一行的总计给去掉
grouping_id中括号里面的字段和rollup括号里面的字段一致就行
grouping_id是肿么来的?它是oracle的函数,针对rollup和cube的
grouping_id的数字是怎么确定的?
向量值,可以认为是二进值的数,例:grouping_id(a,b,c),如果列a为空就是0 非空为1,列b和列c也一样,
结果会得到一个三位数,用二进制转换成十进制就是了,例:a,b,c全是非空,说明这行数据是一个总计,那么就是111
即7,三列就是7,如果是两列自然是11就是3了。
因为Grouping是用来判断当前Column是否是一个合计列,如果是一个合计列,则相应的列会是一个空值
select to_char(to_date(tt.inst_date, 'yyyy-mm-dd'), 'yyyy-mm-dd') as inst_date,
nvl(c.username, tt.opr_id) as opr_id,
nvl(l.name, d.card_type) as card_type,
tt.bat_mchnt_id,
to_char(sum(tt.txn_amt) / 100, 'fm9999999990.00') as txn_amt,
count(*) as count
from (select nvl(m.chnshort,'零星售卡') as bat_mchnt_id,
t.inst_date,
t.opr_id,
t.card_deposit as txn_amt,
t.card_no
from t_dtl_author t
left join t_inf_mchnt m on (t.bat_mchnt_id = m.mchnt_id)
where ahth_txn_type = '1324'
and t.mchnt_id <> '000000000000891' AND t.inst_date='20120917'
?:1) tt
left join mnguserinfotb c on (c.operatorcardid = tt.opr_id)
left join v_inf_card d on (tt.card_no = d.card_no)
left join (select distinct (card_type) as card_type, name, mediatype
from t_cardkind_para) l on (d.card_type = l.card_type)
group by rollup(tt.inst_date, nvl(c.username, tt.opr_id),
nvl(l.name, d.card_type),tt.bat_mchnt_id)
相关推荐
`rollup-plugin-ignore-import`就是这样一个工具,它专为前端开发中的Rollup打包器设计,旨在帮助开发者在打包过程中忽略特定的导入模块。这篇文章将深入探讨`rollup-plugin-ignore-import`的核心功能、使用方法以及...
本文将深入探讨一个与Rollup相关的开源库——`rollup-plugin-dts`,它是用于生成TypeScript类型定义(`.d.ts`)汇总文件的插件。 `rollup-plugin-dts` 是一个专门为Rollup设计的插件,它的主要功能是在编译过程中将...
最后,运行`rollup -c`命令,Rollup将会根据配置文件进行构建,并利用`rollup-plugin-minify`对输出的JavaScript进行压缩和最小化。 总结来说,`rollup-plugin-minify`是Rollup生态系统中一个强大的工具,它结合了...
`rollup-plugin-env` 是一个专门为Rollup.js设计的插件,它的主要功能是将环境变量注入到Rollup.js的构建流程中。这使得开发者能够在编译时根据环境变量来决定某些特定的配置或代码块是否启用。例如,你可以使用它来...
**前端开源库-rollup-plugin-cpy详解** 在前端开发中,构建工具扮演着至关重要的角色,它们帮助我们自动化代码处理、打包和优化。Rollup 是一个流行的选择,它以其模块捆绑器的身份出现,用于创建高效、可维护的...
总结来说,“rollup-plugin-shebang”是一个实用的前端开发工具,它扩展了Rollup.js的功能,使开发者能够处理包含Unix样式的shebang的脚本,保证在打包后的可执行文件能按照预期运行。通过合理利用这个插件,你可以...
**前端开源库-rollup-plugin-strip详解** 在前端开发过程中,我们常常需要构建和优化我们的代码,以便在生产环境中提供最佳的性能和加载速度。`rollup-plugin-strip`就是这样一款用于前端代码优化的开源库,它专门...
**前端开源库-rollup-plugin-legacy详解** 在前端开发领域,构建工具的使用至关重要,它们可以帮助我们优化代码、处理依赖关系以及打包应用。Rollup 是一个现代化的JavaScript模块打包器,以其高效的树摇(Tree ...
rollup-plugin-commonjs, 将CommonJS模块转换为 ES2015 rollup-plugin-commonjs 将CommonJS模块转换为 ES6,以便它们可以包含在Rollup包中安装npm install --save-dev rollup-plugin-commonjs用法
ROLLUP 子句可以将查询结果按照一个或多个字段进行分组,并且可以生成子总计和总计。 在 Oracle 中,ROLLUP 子句可以与 GROUP BY 子句配合使用,以便对数据进行分组和聚合。ROLLUP 子句可以指定一个或多个字段,...
本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
yarn add rollup-plugin-copy -D # npm npm install rollup-plugin-copy -D 用法 // rollup.config.js import copy from 'rollup-plugin-copy' export default { input : 'src/index.js' , output : { file : '...
汇总插件类型script2 带有编译器错误...安装# with npmnpm install rollup-plugin-typescript2 typescript tslib --save-dev# with yarnyarn add rollup-plugin-typescript2 typescript tslib --dev用法// rollup.conf
`rollup-plugin-coffee-script`是一个专为CoffeeScript设计的Rollup插件,它允许开发者在使用Rollup进行模块打包时直接处理CoffeeScript源码。Rollup是一款流行的JavaScript模块打包工具,以其树摇(Tree Shaking)...
@ ian-sun / rollup-plugin-sass 一个Rollup插件,用于Rollup和Sass之间的无缝集成。 安装 使用npm: npm install --save-dev @ian-sun/rollup-plugin-sass 用法 创建一个rollup.config.js并导入插件: // rollup...
yarn add postcss rollup-plugin-postcss --dev 用法 v2.0支持汇总v1或更高版本,但它会打印汇总v2中已弃用的警告。 重大变化: v3.0仅支持汇总v2,并且基于捆绑的提取路径将根目录中生成文件的位置定位在汇总v2中...
Rollup-plugin-preprocess 是一个针对 Rollup 构建工具的插件,它旨在帮助开发者在构建前端项目时对源代码进行预处理。Rollup 以其模块捆绑的高效性和灵活性而闻名,而预处理插件的加入则进一步增强了它的功能,允许...
欢迎您继续开发rollup-plugin-html2。 请与我联系,以在npmjs.org上转让所有权。 汇总插件html2 插件,用于将捆绑的文件注入HTML模板。 该插件的灵感来自和 。 rollup-plugin-html2不会列出输出目录,但会从结果...
汇总插件可用于捆绑销售安装# Rollup v0.60+ and v1+npm install --save-dev rollup-plugin-serve# Rollup v0.59 and belownpm install --save-dev rollup-plugin-serve@0用法// rollup.config.jsimport serve from ...
rollup-plugin-postcss的 inject 模式下,把导出后组件引用的xxx.scss.js转换为xxx.css进行引入 本插件依赖 ,主要是针对组件按需加载的场景下进行的优化适配 Install npm: npm install -D rollup-plugin-postcss-...