-
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
相关推荐
廿一夏8 小时前
MySql存储引擎与索引lzhdim10 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题瀚高PG实验室10 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题TDengine (老段)11 小时前
TDengine Tag 设计哲学与 Schema 变更机制YOU OU12 小时前
Spring IoC&DIMuscleheng13 小时前
Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错罗超驿13 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析jran-13 小时前
Redis 命令小江的记录本14 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)June`14 小时前
多线程redis下如何解决aof重写和rdb持久化的数据一致性问题