SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET

news2024/12/26 11:52:56

文章目录

  • SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET
    • ROLLUP函数
    • GROUPING函数
    • GROUPING SET函数
    • CUBE函数
    • 网上例子

写在前面:如果我们想要对分组之后的数据进行类似小计的计算,那么就需要使用到下面的函数

SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET

参考来源: https://www.cnblogs.com/linfangnan/p/14785644.html

在这里插入图片描述

ROLLUP函数

SELECT SNO,CNO,SUM(DEGREE) 总分  FROM SCORE GROUP BY SNO,CNO WITH ROLLUP

在这里插入图片描述

SELECT SNO,CNO,SUM(DEGREE) 总分
FROM SCORE GROUP BY SNO,CNO WITH ROLLUP
--也可以写成
SELECT SNO,CNO,SUM(DEGREE) 总分 FROM SCORE GROUP BY ROLLUP(SNO,CNO);

在这里插入图片描述

GROUPING函数

SELECT CASE WHEN (GROUPING(SNO)) = 1 THEN '所有总分' ELSE ISNULL(SNO,'UNKNOWN') END AS SNO,
CASE WHEN CNO IS NULL AND SNO IS NULL THEN '' ELSE ISNULL(CAST(CNO AS CHAR(8)),'小计') END AS CNO,
SUM(DEGREE) AS 成绩总和
FROM SCORE GROUP BY SNO,CNO WITH ROLLUP;

在这里插入图片描述

GROUPING SET函数

SELECT SNO,CNO,SUM(DEGREE) FROM SCORE  GROUP BY GROUPING SETS(SNO,CNO);

在这里插入图片描述

SELECT SNO,CNO,SUM(DEGREE) FROM SCORE  GROUP BY GROUPING SETS((SNO,CNO));

在这里插入图片描述

SELECT SNO,CNO,SUM(DEGREE) FROM SCORE  GROUP BY GROUPING SETS(SNO,CNO,(SNO,CNO));

在这里插入图片描述

CUBE函数

SELECT SNO,CNO,SUM(DEGREE) FROM SCORE GROUP BY CUBE(SNO,CNO);

在这里插入图片描述

网上例子

在这里插入图片描述

SELECT isnull(CAST(Sno aschar(8)), '总平均分') Sno,    
        --若该数据为所有分组的汇总数据,用“总平均分”替换 NULL
       CASE	WHEN  Sno isnull  AND  Cno ISnull	THEN ''	ELSE  isnull(CAST(CNO aschar(6)), '平均分') END CNO,
        --若该数据为某个分组的汇总数据,用“平均分”替换 NULLAVG(Degree)
FROM Score
GROUP BY GROUPING SETS (ROLLUP(Sno, Cno))

在这里插入图片描述
在这里插入图片描述

SELECT 
  CASE  WHEN  S.Sname isnull  AND  Cno ISnull THEN  '总平均分'  ELSE  isnull(CAST(Sname aschar(10)), '课程平均分') END    Sname,
   --总汇总数据用“总平均分”替换 NULL,Cno 字段汇总数据用“课程平均分”替换 NULL
  CASE  WHEN   Sname isnull  AND  Cno ISnull  THEN  ''  ELSE  isnull(CAST(Cno aschar(10)), '学生平均分') END
Cno,
       --若该数据为某个分组的汇总数据,汇总数据用“学生平均分”替换 NULLAVG(Degree) 成绩
FROM  Score SC
JOIN  Student  S ON S.Sno =  SC.Sno
GROUP BY  Sname, Cno WITH CUBE

在这里插入图片描述
在这里插入图片描述

SELECT  CASE  WHEN  SC.Sno ISnull  AND  SC.Cno ISnull  THEN  '总'  ELSE  isnull(CAST(SC.Sno aschar(10)), '课程') END    Sno,
    CASE  WHEN  SC.Sno ISnull   AND   SC.Cno ISnull  THEN  '平均分'  ELSE  isnull(CAST(S.Sname aschar(10)), '平均分') END    Sname,
    CASE  WHEN  SC.Sno ISnull  AND   SC.Cno ISnull  THEN  '' ELSE  isnull(CAST(SC.Cno aschar(10)), '学生') END    Cno,
    CASE  WHEN  SC.Sno ISnull  AND  SC.Cno ISnull  THEN  '' ELSE  isnull(CAST(C.Cname aschar(10)), '平均分') END    Cname,
    AVG(Degree) 成绩
FROM  Score SC
JOIN  Student S ON  S.Sno =  SC.Sno
JOIN  Course C ON  C.Cno  =   SC.Cno
GROUP  BY  GROUPING   SETS ((sc.Cno, sc.Sno, Sname, Cname), (SC.Sno, S.Sname), (SC.Cno, C.Cname))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1857848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决bat脚本输出中文乱码

2024.06.24 测试,使用方法(1)已解决问题。 原文连接 一、乱码原因 Windows的cmd.exe默认编码格式为ANSI。简体中文版的Windows, 其ANSI对应微软Codepage为cp936 如果你的bat文件是UTF-8编码的, 或者是是其他Codepage下创建的, 当bat文件编码…

C语言基础——函数(2)

ʕ • ᴥ • ʔ づ♡ど 🎉 欢迎点赞支持🎉 文章目录 前言 一、return语句 二、数组做函数参数 三、嵌套调用和链式访问 3.1 嵌套调用 3.2 链式访问 四、函数声明和定义 4.1 单个文件 4.2 多个文件 总结 前言 大家好啊,继我们上一…

快速鲁棒的 ICP (Fast and Robust Iterative Closest Point)

迭代最近点(Iterative Closet Point,ICP)算法及其变体是两个点集之间刚性配准的基本技术,在机器人技术和三维重建等领域有着广泛的应用。ICP的主要缺点是:收敛速度慢,以及对异常值、缺失数据和部分重叠的敏…

【强化学习的数学原理】课程笔记--1(基本概念,贝尔曼公式)

目录 基本概念State, Action, State transitionPolicy, Reward, Trajectory, Discount ReturnEpisodeMarkov decision process 贝尔曼公式推导确定形式的贝尔曼公式推导一般形式的贝尔曼公式State ValueAction Value 一些例子贝尔曼公式的 Matric-vector form贝尔曼公式的解析解…

图片多级缓存加载流程

图片多级缓存加载流程通常包括三个主要级别:内存缓存、本地缓存和网络缓存。以下是详细的加载流程: 1. 内存缓存(一级缓存) 流程: 当应用需要加载一张图片时,首先会检查内存缓存中是否存在该图片。 如果…

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。 从广义上…

智能屏幕人体雷达感应开关模块,飞睿智能低功耗毫米波雷达技术,让冰箱更节能

在智能家居日益普及的今天,各种创新技术层出不穷,极大地提升了人们的生活品质。其中,人体雷达感应开关模块作为一种创新的传感器技术,正在逐步改变我们对家电设备的传统认知。本文将深入探讨飞睿智能人体雷达感应开关中的毫米波雷…

【Golang】Steam 创意工坊 Mod 文件夹批量重命名

本文将介绍一个使用Go语言编写的脚本,其主要功能是解析XML文件并基于解析结果重命名文件夹。这个脚本适用于需要对文件夹进行批量重命名,并且重命名规则依赖于XML文件内容的情况。 脚本功能概述 Steam创意工坊下载的Mod文件夹批量重命名为id名称 运行前…

MySQL-java连接MySQL数据库+JDBC的使用

目录 1.准备所需要资源 2.导入驱动包 3.连接数据库步骤 首先在MySQL中创建好数据库和表 代码实现连接数据库 1.准备所需要资源 1.mysql和驱动包 我用的是5.7的mysql和5.1.49的驱动包,链接放在网盘里,需要的自取 链接:https://pan.bai…

K8S安装metrics-server

K8S安装metrics-server 使用kubeadm安装完成的集群,运行kubectl top node等命令式,报错:error: Metrics API not available。这是因为缺少metrics-server。 [rootk8s-master1 ~]# kubectl top node error: Metrics API not available简介 …

k8s集群搭建及对一些组件的简单理解

背景 k8s的学习环境(用kubeadm方式搭建),我也搭过几次了,但都有点问题。 要么在云服务器上弄,这个的问题是就只有一台轻量服务器,只能搭个单节点的;后来买了一台便宜的,所以就有了两…

SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)

在你的项目中,有没有遇到用户重复提交的场景,即当用户因为网络延迟等情况把已经提交过一次的东西再次进行了提价,本篇文章将向各位介绍使用滑动窗口限流的方式来防止用户重复提交,并通过我们的自定义注解来进行封装功能。 首先&a…

网络基础-协议

一、ARP 通过IP得到Mac 首先会查看缓存的arp表中是否有相应的IP和Mac对应关系,如果有直接进行包封装。如果没有则进行广播当对应的地址就收到广播包后会根据arp中的源地址进行单播返回相应的IP和Mac对应关系。 arp -a 查看现有的arp缓存 二、RARP反向地址解析 通过…

git上传本地项目及更新项目

1、注册GitHub账号和下载git 2、在GitHub上新建一个仓库,点击号——>New repository,给仓库起一个名字,点击Create repository 3、进入要上传的项目中,右键点击git back here,命令行输入git init初始化&#xff0c…

《Nest系列 - 3. 掌握常见Nest 装饰器,奠定坚实基础!!!!!!》

nest 一个核心就是依赖注入,而中的大部分功能都是通过装饰器来实现的,那什么是装饰器呢? 就是一个 xxx ,诸如 Module,controller, Get, Post 那这样有什么好处呢? 可以把他理解成一个方法,在不改…

精密机械中的滚珠螺杆与螺杆支撑座的完美配合!

螺杆支撑座和滚珠螺杆是机械设备中的重要部件。滚珠螺杆通常运用在自动化设备中,需高速运动、高精度定位均依靠它的优良性能,如机床,数控、工业机器人等机械设备。螺杆支撑座装在螺杆的两端,支撑座有两端,固定端和支撑…

SpringBoot的迭代史,SpringBoot和Spring和Java和Maven和Gradle版本兼容介绍

文章目录 系统环境要求:Spring Boot 3.1.xSpring Boot 3.0.xSpring Boot 2.7.xSpring Boot 2.6.xSpring Boot 2.5.xSpring Boot 2.4.xSpring Boot 2.3.xSpring Boot 2.2.xSpring Boot 2.1.xSpring Boot 2.0.xSpring Boot 1.5.xSpring Boot 1.4.xSpring Boot 1.3.xSp…

代码随想录训练营Day 69|并查集理论基础、卡码网107.寻找存在的路径

1.并查集理论基础 并查集理论基础 | 代码随想录 并查集可以解决什么问题呢? 主要就是集合问题,两个节点在不在一个集合,也可以将两个节点添加到一个集合中。 注意:求根是求箭头出发的数 路径压缩:求根的根。把根的根的…

【投稿优惠|权威主办】2024年图像、地质测绘与遥感技术国际学术会议(ICIGSRST 2024)

【投稿优惠|权威主办】2024年图像、地质测绘与遥感技术国际学术会议(ICIGSRST 2024) 2024 International Conference on Image, Geological Surveying and Remote Sensing Technology(ICIGSRST 2024) ▶会议简介 2024年图像、地质…

大学生综合能力测评系统(安装+讲解+源码)

【毕设者】大学生综合能力测评系统(安装讲解源码) 分为管理员老师学生端 技术栈 后端: SpringBoot Mysql MybatisPlus 前端: Vue Element 功能截图: 给你安装运行