rollup()和rollup(())的区别

本文详细解释了SQL中的ROLLUP()与ROLLUP()()的区别,通过实例展示了如何使用这些函数来获取不同级别的聚合数据,并讨论了如何仅获取总计而无需小计的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用:http://blog.youkuaiyun.com/damenggege123/article/details/38794351

使用里面的数据进行查询来区别rollup()和rollup(())的使用。

 select f_workarea, f_line, sum(f_pagesnumber) sum_pagesnumbers
   from t_testcount
  group by rollup(f_workarea, f_line);

 

返回结果

 

F_WORKAREA F_LINE SUM_PAGESNUMBERS
a	a1	1
a	a2	2
a	a3	3
a		6
b	b1	1
b		1
		7

 

上面结果存在小计和总计

 select f_workarea, f_line, sum(f_pagesnumber) sum_pagesnumbers
   from t_testcount
  group by rollup((f_workarea, f_line));

 

结果如下:       

 

F_WORKAREA F_LINE SUM_PAGESNUMBERS
a	a1	1
a	a2	2
a	a3	3
b	b1	1
		7

 上面结果里面明显没有小计,只有总计。

所以rollup()和rollup(())的区别即rollup(())只有总计而没有小计。

如果没有rollup(())怎么实现只有总计没有小计呢。

select *
  from (select grouping(f_line) as a1,
               grouping(f_workarea) as a2,
               f_workarea,
               f_line,
               sum(f_pagesnumber) sum_pagesnumbers
          from t_testcount
         group by rollup(f_workarea, f_line)) t
 where t.a1 = 0
   and t.a2 = 0
    or (t.a1 = 1 and t.a2 = 1)

 结果如下:

A1 	A2  F_WORKAREA	F_LINE	SUM_PAGESNUMBERS
0	0	a	a1	1
0	0	a	a2	2
0	0	a	a3	3
0	0	b	b1	1
1	1			7

 

### 主要区别 Webpack 是一个模块捆绑器,主要用于现代 JavaScript 应用程序的构建过程。它能够处理各种类型的资源,不仅限于 JavaScript 文件还包括样式表、图片其他静态资产[^1]。 相比之下,Rollup 更加专注于 ES6 模块标准,并且在打包过程中会移除未使用的导出项(Tree Shaking),从而生成更加精简高效的代码。对于那些主要由纯 JavaScript 组成的小型库来说,这是一项非常有用的功能[^2]。 ### 功能特性对比 #### Webpack 特点 - 支持多种类型的文件作为输入源; - 提供丰富的插件生态系统来扩展其核心功能; - 可以轻松实现按需加载(Code Splitting)、缓存管理等功能; - 对大型复杂项目的兼容性支持度较高[^3]。 #### Rollup 特点 - 高效地执行 Tree Shaking 来减少最终包大小; - 默认情况下只处理 `.js` 文件中的 ESM (ECMAScript Modules) 语法; - 插件体系相对简单但足以满足大多数需求; - 生产环境下能更好地保持原始导入路径结构[^4]。 ### 适用场景 当面对的是一个完整的 web 应用程序时——尤其是包含了 CSS、HTML 或其他非 JS 资源在内的项目,则应该优先考虑使用 Webpack 进行构建工作。而对于旨在发布给他人使用的独立 JavaScript 库而言,在仅涉及少量依赖关系的情况下,选择 Rollup 将有助于创建更为紧凑轻便的产品版本。 ```javascript // Webpack 配置示例 module.exports = { entry: './src/index.js', output: { filename: 'bundle.js' }, module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] } }; // Rollup 配置示例 import resolve from '@rollup/plugin-node-resolve'; export default { input: 'src/main.js', output: [{ file: 'dist/bundle.esm.js', format: 'es' }], plugins: [resolve()] }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值