Oracle中的Rollup 使用方法

  • 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(按照班级分组小计、班级总分) :

    sql 复制代码
    SELECT 
    	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 (只有总计)

    sql 复制代码
    SELECT 
    	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
相关推荐
冉冰学姐6 小时前
基于ssm的个性化旅游助手设计与实现2f9h41fv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·旅游·ssm 框架
数据知道6 小时前
MongoDB的Oplog:MongoDB 数据同步的核心机制
数据库·mongodb
数据中穿行6 小时前
mysql核心算法详细解析
数据库
zandy10117 小时前
从报表到决策:衡石科技如何助力SaaS厂商构建数据驱动型产品?
数据库·人工智能·科技
科技块儿7 小时前
社交媒体账号安全如何通过IP查询工具检测异常登录?
服务器·网络·数据库·tcp/ip·安全
zyb11475824337 小时前
Redis的学习
数据库·redis·学习
冰糖拌面7 小时前
mysql 和 pg ip 白名单
数据库·tcp/ip·mysql·postgresql
数据知道7 小时前
MongoDB:如何将读请求分流到从节点,减轻主节点压力(读偏好)
数据库·mongodb
喵叔哟7 小时前
08-依赖注入与服务容器
数据库·oracle
’长谷深风‘7 小时前
从零开始学 SQLite:从基础命令到 C 语言编程实战
c语言·数据库·sqlite·软件编程