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…

YOLOv10剪枝|模型轻量化实现方案 - 模型剪枝手把手教学

📚 专栏地址:《YOLOv10算法改进实战》 👉 独家改进,对现有YOLOv10进行二次创新,提升检测精度,适合科研创新度十足,强烈推荐 🌟 统一使用 YOLOv10 代码框架,结合不同模块来构建不同的YOLO目标检测模型。 💥 本博客包含大量的改进方式,降低改进难度,改进点包含【B…

互联网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环境根据命令执行后…

栈与队列 Leetcode 239 滑动窗口最大值

栈与队列 Leetcode 239 滑动窗口最大值 Leetcode 239 要点&#xff1a;1.能想到单调队列&#xff0c;积累技巧&#xff1b; class Solution{ public:class My_Monotonous_Queue{public:deque<int> Mono_queue;// 重写队列pop函数内部实现&#xff0c;移除队列最前方的…

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

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

分布式缓存框架Hazelcast与Java整合详解

引言 在现代的分布式系统中&#xff0c;缓存是提高性能的关键组件之一。Hazelcast作为一个开源的分布式内存数据网格&#xff08;IMDG&#xff09;&#xff0c;提供了分布式缓存、集群和并发数据结构等功能。本文将详细介绍如何在Java应用中整合Hazelcast&#xff0c;并通过代…

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

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

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

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

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

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

Leetcode Hot100之数组

1.最大子数组和 题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。解题思路 动态规划&#xff0c;遍历数组求取以当前元素为结尾的子…

mysql 查询排名,包括并列排名和连续排名

在MySQL中&#xff0c;根据不同的需求&#xff0c;查询排名可以分为并列排名和连续排名两种情况。 以下是分别实现这两种排名的方法&#xff0c;考虑到兼容性&#xff0c;这里会提供适合较早版本MySQL&#xff08;即8.0之前版本&#xff09;的解决方案&#xff0c;同时也提及M…

influxdb内存存储改为硬盘存储

根据直接部署和docker配置寻找到配置文件&#xff0c;添加内容 [data]engine "tsi1"index-version "tsi1" 即可降低内存占用

Java对象List根据ID去重

Java对象List根据ID去重 一、前言1. 使用HashSet去重2. 使用Stream API去重3. 使用HashMap去重4. 使用TreeSet去重并保持顺序5. 使用LinkedHashMap确保插入顺序 一、前言 在Java中处理大数据时&#xff0c;常常会遇到需要去重的情况。假设我们有一个对象数组&#xff0c;其中对…

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

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

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

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