-
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
相关推荐
nice_lcj52010 分钟前
MySQL中GROUP_CONCAT函数详解 | 按日期分组拼接销售产品经典案例key1s14 分钟前
在 clickhouse时间降序排序解决方案有梦想有行动18 分钟前
ClickHouse的Partition和Part概念GZ_TOGOGO23 分钟前
Oracle数据库考试适合哪些人Gauss松鼠会24 分钟前
【openGauss】学习 gsql 命令行的使用晓131328 分钟前
第二章:Redis常见命令与Java客户端·云扬·38 分钟前
MySQL索引实战指南:添加场景、联合索引要点与失效场景解析填满你的记忆1 小时前
【从零开始——Redis 进化日志|Day7】双写一致性难题:数据库与缓存如何不再“打架”?(附 Canal/读写锁实战)小白考证进阶中1 小时前
MySQL OCP认证可以考中文?备考难度怎么样?蒟蒻的贤1 小时前
操作系统复习