SQL Server - ROLLUP、GROUPING、CUBE、GROUPING SET

文章目录

  • 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,    --若该数据为所有分组的汇总数据,用“总平均分”替换 NULLCASE	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 字段汇总数据用“课程平均分”替换 NULLCASE  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.mzph.cn/pingmian/34669.shtml

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

相关文章

EMANE版本的编译问题

EMANE最新版本编译问题 在Ubuntu 18.04上编译EMANE最新版本 在ubuntu 18.04上使用make deb编译EMANE1.5.1时,会卡在如下地方: make[6]: Entering directory ‘/home/xxx/emane-1.5.1/.debbuild/emane-1.5.1’ /bin/bash /home/xxx/emane-1.5.1/.debbui…

互联网IT公司网站选择科技蓝,从来没让人失望过。

选择科技蓝色作为IT官网的主题颜色有以下好处: 专业感:科技蓝色通常与科技、创新和专业相关联,使用科技蓝色可以给访问者一种专业、可靠的印象,增强品牌形象,特别适合IT行业。技术感:科技蓝色给人一种科技…

微信小程序笔记 七!

页面配置 1. 页面配置文件的作用 小程序中,每个页面都有自己的 .json 配置文件,用来对当前页面的窗口外观、页面效果等进行配置。 2. 页面配置和全局配置的关系 小程序中,app.json 中的 window 节点,可以全局配置小程序中每个…

智心顾问:为心智障碍家庭带来温暖与专业支持

💙关爱从心开始 —— 理解心智障碍 在这个世界上,有这样一群特殊的群体——心智障碍者。他们通常伴随着个体认知、社会互动和学习能力的障碍。这些障碍可能源于遗传、环境或未知因素,但不应成为他们照护者获得信息和支持的阻碍。心智障碍者的…

「ClickHouse 极简教程」分布式下的 IN/JOIN 及 GLOBAL关键字

百度安全验证https://baijiahao.baidu.com/s?id1712073808973941124&wfrspider&forpc

C++结构体内存对齐规则

背景介绍 最近在使用Java语言写一个Java客户端,对接一个C/C语言编写的Server时,采用TCP协议进行通信,在将C结构体序列化的输出流转换为Java结构体时,需要按照结构体每个字段对应的字节长度截取字节流转换为Java类型,遇…

19 Shell编程之条件语句

目录 19.1 条件测试操作 19.1.1 文件测试 19.1.1 整数值比较 19.1.3 字符串比较 19.1.4 逻辑测试 19.2 if条件语句 19.2.1 if语句的结构 19.2.2 if语句应用示例 19.3 case分支语句 19.3.1 case语句的结构 19.3.2 case语句应用示例 19.1 条件测试操作 Shell环境根据命令执行后…

内容安全复习 1 - 信息内容安全概述

文章目录 信息内容安全简介网络空间信息内容安全大模型 人工智能简介 信息内容安全简介 网络空间 网络空间是融合物理域、信息域、认知域和社会域,控制实体行为的信息活动空间。 上图展示了网络空间安全的结构。可以看到将网络空间划分为了网络域和内容域两个部分。…

Kotlin设计模式:深入解析Facade模式

Kotlin设计模式:深入解析Facade模式 在软件开发中,随着系统复杂度的增加,管理和使用多个相关接口变得越来越困难。这时候,Facade模式(外观模式)就显得尤为重要。本文将深入探讨Kotlin中的Facade模式&#…

利用LabVIEW和数字孪生技术实现PCB电路板测试

利用LabVIEW和数字孪生技术对PCB电路板进行测试,可以通过动画展示实现测试过程的生动、形象和直观。本文详细说明了如何结合LabVIEW与数字孪生技术进行PCB电路板的测试,包括系统架构、实现方法以及具体展示效果,适合对外展示。 在现代电子制造…

前端项目外包出去,是我痛苦的开始。如何破?

不止一个老铁给我反馈,他们把其前端项目外包出去,非常的痛苦,远不如用自己的员工省心。明面上钱省了,实际精力大量耗费在上面,一算账并没省,反而闹了一肚子气,问我这事该如何破?其实…

CloudCompare二次开发目录(C++长期更新版)

目录 一、环境配置二、功能开发 本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、环境配置 WIN10系统下VS2019编译CloudCompare2.12.4CloudCompare与PCL数据格式的相互转换 二、功能开发 …

2024年电商618观察:这是最好的时代 这是最坏的时代

内容提要 目前阶段增长势头更强劲的是中小商家,而星图的核心数据还是10万多个品牌。 十九世纪,英国最伟大的作家狄更斯在他的小说《双城记》开篇中写道: 这是最好的时代,这是最坏的时代; 这是智慧的年代,…

游戏工作室的得力助手:探索高效代理IP软件的选择与应用

在数字化浪潮的推动下,游戏产业蓬勃发展,游戏工作室作为这一领域的重要参与者,其运营效率和稳定性成为了影响业务成功的关键因素。而在众多提升运营效率的工具中,代理IP软件凭借其独特的功能和优势,成为了游戏工作室不…

台式扫描电镜工作距离越远观察区越大?

台式扫描电镜(Scanning Electron Microscope, SEM)是一种高分辨率的显微镜,它利用电子束扫描样品表面,通过样品与电子束相互作用产生的信号来形成图像。这种显微镜广泛应用于材料科学、生物学和医学等领域,以观察样品的…

提示词绕过大模型安全限制

大模型安全绕过策略 简介 本文使用简单的提示词,可以在所有场景中实现针对某开源模型的安全策略绕过。 glm-4-9b-chat 的安全措施还有待完善。 上一代的6b比这一代的9B,要安全;上一代的6B大模型这一招没有用。 正常对话 若在下述正常互动…

经纬恒润EAS.HSM:驱动硬件信息安全

概述 HSM(Hardware Security Module)硬件安全模块,是一种用于保护和管理强认证系统所使用的密钥,并同时提供相关密码学操作的计算机硬件设备。 HSM 在汽车信息安全中扮演着至关重要的角色。随着汽车智能化和网联化的快速发展&am…

ONLYOFFICE8.1版本震撼来袭

目录 软件简介 产品概述: 功能特点: 技术原理: 版本与部署: 8.1版本更新 全新的PDF编辑器 1.文本编辑 2.页面处理 (添加、旋转、删除) 3.插入和调整各种对象,例如表格、形状、文本框、…

MYSQL十、MYSQL的存储过程和触发器的基本认识

存储过程 存储过程:存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff…

【学习笔记】数据结构(三)

栈和队列 文章目录 栈和队列3.1 栈 - Stack3.1.1 抽象数据类型栈的定义3.1.2 栈的表示和实现 3.2 栈的应用举例3.2.1 数制转换3.2.2 括号匹配的检验3.2.3 迷宫求解3.2.4 表达式求值 - 波兰、逆波兰3.2.5 反转一个字符串或者反转一个链表 3.3 栈与递归的实现3.4 队列 - Queue3.4…