-
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
相关推荐
一只大袋鼠6 分钟前
数据库知识点梳理(二):从基础操作到底层原理betazhou14 分钟前
Oracle JDBC连接串解析DNS的改进原来是猿17 分钟前
MySQL【事务下】2301_7765087223 分钟前
Python日志记录(Logging)最佳实践东小黑35 分钟前
WordPress问题2401_8796938736 分钟前
用Python批量处理Excel和CSV文件gjc5921 小时前
踩坑实录:MySQL服务器CPU爆高,元凶竟是SELinux的setroubleshootd?2401_846341651 小时前
Python Lambda(匿名函数):简洁之道2401_879693871 小时前
进阶技巧与底层原理知识分享小能手1 小时前
Redis入门学习教程,从入门到精通, Redis Stack 完整语法知识点及使用指南(7)