-
Oracle 版本: 19c ,Production version 19.3.0.0.0 Enterprise
-
使用场景:对结果集生成总计、小计效果
-
模拟数据:
数学 语文 学号 班级 90 80 0001 1班 80 95 0002 1班 77 99 0003 2班 95 85 0004 2班 -
例子 1(按照班级分组小计、班级总分) :
sqlSELECT NVL(班级,'总计') 班级, CASE WHEN 班级 IS NULL THEN '-' ELSE NVL(学号,'小计') END 学号, SUM(数学) 数学, SUM(语文) 语文 FROM score GROUP BY ROLLUP(班级,学号) ORDER BY 班级,学号
班级 学号 数学 语文 1班 0001 90 80 1班 0002 80 95 1班 小计 170 175 2班 0003 77 99 2班 0004 95 85 2班 小计 172 184 总计 - 342 359 -
例子2 (只有总计)
sqlSELECT NVL(班级,'总计') 班级, CASE WHEN 班级 IS NULL THEN '-' ELSE NVL(学号,'小计') END 学号, SUM(数学) 数学, SUM(语文) 语文 FROM score GROUP BY ROLLUP((班级,学号)) -- 意思是 班级、学号组合分组 ORDER BY 班级,学号
班级 学号 数学 语文 1班 0001 90 80 1班 0002 80 95 2班 0003 77 99 2班 0004 95 85 总计 - 342 359
Oracle中的Rollup 使用方法
米斯特程序猿2023-09-11 12:15
相关推荐
hqxstudying20 分钟前
MyBatis 和 MyBatis-Plus对比DarkAthena34 分钟前
AI生成技术报告:GaussDB与openGauss的HTAP功能全面对比jumin18061 小时前
python采用jdbc连接oracle励志五个月成为嵌入式糕手1 小时前
0820 SQlite与c语言的结合DemonAvenger2 小时前
高效JOIN操作:多表关联查询技巧与实战经验分享小云数据库服务专线3 小时前
GaussDB 数据库架构师修炼(十八) SQL引擎-分布式计划秋已杰爱4 小时前
Redis分布式锁haogexiaole11 小时前
Redis优缺点在未来等你11 小时前
Redis面试精讲 Day 27:Redis 7.0/8.0新特性深度解析新法国菜13 小时前
MySql知识梳理之DML语句