-
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 分钟前
Python Web开发入门(十二):使用Flask-RESTful构建API——让后端开发更优雅升职佳兴25 分钟前
SQL 进阶3:连续登录问题与 ROW_NUMBER 差值法完整解析我是永恒38 分钟前
PostgreSQL数据库安装配置连接Paperclip一个天蝎座 白勺 程序猿1 小时前
踩坑生产后整理:KingbaseES表空间管理、auto_createtblspcdir参数深度解析与运维最佳实践oG99bh7CK1 小时前
FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透Wait....1 小时前
MySQL事务知识复习杨云龙UP1 小时前
Oracle 19c:RMAN Duplicate异机复制数据库实操_20260402刘~浪地球1 小时前
Redis 从入门到精通(七):集合操作详解光泽雨1 小时前
SQL分组Group By我真会写代码2 小时前
MySQL高频面试题(含详细解析):从基础到高级,备战面试不踩坑