当前位置: 首页 > news >正文

SQL Server 查询数据并汇总相关技巧 23.08.08

GROUPING
是一个聚合函数,它产生一个附加的列,当用 CUBE 或 ROLLUP 运算符添加行时,附加的列输出值为1,当所添加的行不是由 CUBE 或 ROLLUP 产生时,附加列值为0。

仅在与包含 CUBE 或 ROLLUP 运算符的 GROUP BY 子句相联系的选择列表中才允许分组。

语法
GROUPING ( column_name )

参数
column_name

是 GROUP BY 子句中用于检查 CUBE 或 ROLLUP 空值的列。

返回类型
int


--首先创建测试表、添加数据
create table #t(a int,b int,c int,d int,e int)
insert into #t values(1,2,3,4,5)
insert into #t values(1,2,3,4,6)
insert into #t values(1,2,3,4,7)
insert into #t values(1,2,3,4,8)
insert into #t values(1,3,3,4,5)
insert into #t values(1,3,3,4,6)
insert into #t values(1,3,3,4,8)
insert into #t values(1,3,3,4,7)insert into #t values(2,2,2,4,5)
insert into #t values(2,2,3,4,6)
insert into #t values(2,2,4,4,7)
insert into #t values(2,2,5,4,8)
insert into #t values(2,3,6,4,5)
insert into #t values(2,3,3,4,6)
insert into #t values(2,3,3,4,8)
insert into #t values(2,3,3,4,7)select *from #t--情况一:只有一个分类汇总列时,只需要一个合计。只需要增加with rollup即可
select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,
sum(b),sum(c),sum(d),sum(e) from #t group by a with rollup

--情况二:有多个分类汇总列,只需要一个合计.增加rollup之后,需要增加判断。
select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,b,
sum(c),sum(d),sum(e) from #t
group by a,b with rollup
having grouping(b)=0 or grouping(a)=1select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,b,c,
sum(d),sum(e) from #t
group by a,b,c with rollup
having grouping(c)=0 or grouping(a)=1

--情况三:有多个分类汇总列,需要全部的小计和合计。
select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,case when grouping(b)=1 and grouping(a)=0 then '小计' else cast(b as varchar) end b,case when grouping(c)=1 and grouping(b)=0 then '小计' else cast(c as varchar) end c,
sum(d),sum(e) from #t
group by a,b,c with rollup--另外一种显示小计的方式
select case when grouping(a)=1 then '合计'when grouping(b)=1 then cast(a as varchar)+'小计'else cast(a as varchar) end a,case when grouping(b)=0 and grouping(c)=1then cast(b as varchar)+'小计' else cast(b as varchar) end b,case when grouping(c)=1 and grouping(b)=0then '' else cast(c as varchar) end c,
sum(d),sum(e) from #t
group by a,b,c with rollup

--情况四:有多个分类汇总列,需要部分的小计和合计
select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,b,case when grouping(c)=1 and grouping(b)=0 then '小计' else cast(c as varchar) end c,
sum(d),sum(e) from #t
group by a,b,c with rollup
having grouping(a)=1 or grouping(b)=0select case when grouping(a)=1 then '合计' else cast(a as varchar) end a,case when grouping(b)=1 and grouping(a)=0 then '小计' else cast(b as varchar) end b,c,
sum(d),sum(e) from #t
group by a,b,c with rollup
having grouping(a)=1 or grouping(b)=1 or grouping(c)=0

相关文章:

SQL Server 查询数据并汇总相关技巧 23.08.08

GROUPING 是一个聚合函数,它产生一个附加的列,当用 CUBE 或 ROLLUP 运算符添加行时,附加的列输出值为1,当所添加的行不是由 CUBE 或 ROLLUP 产生时,附加列值为0。 仅在与包含 CUBE 或 ROLLUP 运算符的 GROUP BY 子句相联系的选择…...

第一章 SpringBoot 介绍-最小配置

1. spring-boot web应用的最小配置 1.1 pom配置两个依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><depende…...

10-1_Qt 5.9 C++开发指南_Data Visualization实现数据三维显示

Data Visualization 是 Qt 提供的用于数据三维显示的模块。在 Qt 5.7 以前只有商业版才有此模块&#xff0c;而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示&#xff0c;包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…...

[保研/考研机试] KY87 鸡兔同笼 北京大学复试上机题 C++实现

描述 一个笼子里面关了鸡和兔子&#xff08;鸡有2只脚&#xff0c;兔子有4只脚&#xff0c;没有例外&#xff09;。已经知道了笼子里面脚的总数a&#xff0c;问笼子里面至少有多少只动物&#xff0c;至多有多少只动物。 输入描述&#xff1a; 每组测试数据占1行&#xff0c;…...

Jmeter快捷方式和应用图标设置

很多人在安装Jmeter,安装到本机却没有icon&#xff0c;每次使用的时候&#xff0c;每次打开应用都要找目录&#xff0c;不太方便。 【解决问题】 使用bin路径下的一个.bat文件&#xff0c;创建快捷方式。 【操作步骤】 Step1、将Jmeter 安装bin路径下的jmeter.bat 发送快捷方…...

PHP sm4国密加密解密文件

<?php // 打开要加密的 PDF 文件 $sourceFilePath path/to/source.pdf; $encryptedFilePath path/to/encrypted.pdf; $decryptedFilePath path/to/decrypted.pdf;// 生成一个 AES 密钥&#xff08;256 位&#xff09; $key random_bytes(32);// 选择一个加密模式&#…...

CBCGPRibbon 添加Edit、Combox、Hyperlink控件

编辑框、下拉框、网址按钮等是我们常用的控件&#xff0c;对应的类是 CBCGPRibbonEdit CBCGPRibbonComboBox CBCGPRibbonHyperlink 使用实例如下&#xff1a; //Edit CBCGPRibbonEdit* pEdit new CBCGPRibbonEdit(2001, 200); pEdit->SetReadOnly(TRUE); …...

漫话拥塞控制:BBR 是个单流模型

概要(便于检索主题)&#xff1a;单流&#xff0c;多流收敛&#xff0c;probe buffer 挤压带宽&#xff0c;maxbw-filter wnd。 我曾经经常说 BBR 是个单流模型&#xff0c;而不是多流收敛模型&#xff0c;也做过不少评论&#xff0c;最近在复听 IETF 的大会&#xff0c;在 IET…...

HTML详解连载(1)

HTML详解连载&#xff08;1&#xff09; HTML定义HTML 超文本标记语言标签语法注意拓展 HTML基本骨架解释VS Code 快速生成骨架&#xff1a;标签的关系父子关系&#xff08;嵌套关系&#xff09;兄弟关系&#xff08;并列关系&#xff09; 代码格式注释 标题标签标签名:h1-h6(双…...

最新版本2023UI千月影视APP源码 开源完美版前后端完美匹配 后端基于ThinkPHP框架

最新版本的2023UI千月影视APP源码是一款开源的完美版应用程序&#xff0c;具备前后端完美匹配的特点。该应用的后端开发基于ThinkPHP框架&#xff0c;这是一个广泛使用的PHP开发框架&#xff0c;具有稳定性和安全性方面的优势。 2023UI千月影视APP是一款提供电影、电视剧、综艺…...

centos7安装Docker详细步骤(无坑版教程)

一、安装前必读 在安装 Docker 之前&#xff0c;先说一下配置&#xff0c;我这里是Centos7 Linux 内核&#xff1a;官方建议 3.10 以上&#xff0c;3.8以上貌似也可。 注意&#xff1a;本文的命令使用的是 root 用户登录执行&#xff0c;不是 root 的话所有命令前面要加 sudo…...

Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2

RabbitMQ的exchange&#xff0c;即交换机有不同的类型&#xff1a; 1.direct Exchange(直接交换机) 匹配路由键&#xff0c;只有完全匹配消息才会被转发 2.Fanout Excange&#xff08;扇出交换机&#xff09; 将消息发送至所有的队列 3.Topic Exchange(主题交换机) 将路由按模…...

了解IL汇编跳转语句

il代码&#xff0c; .assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 5.entrypointldstr "Enter First Number"call void [mscorlib]System.Console::WriteLine (string)call string …...

JVM运行时五大数据区域详解

前言&#xff1a; java虚拟机再执行Java程序的时候把它所拥有的内存区域划分了若干个数据区域。这些区域有着不同的功能&#xff0c;各司其职。这些区域不但功能不同&#xff0c;创建、销毁时间也不同。有些区域为线程私有&#xff0c;如&#xff1a;每个线程都有自己的程序计数…...

Vuex 使用教程

Vuex 各子模块的内部结构及作用 这是vuex的内部代码结构&#xff0c;所有的子模块都是一样的 state&#xff1a;存放数据状态&#xff1b; action&#xff1a;指派 mutation &#xff1b; mutation&#xff1a;修改state里面的状态&#xff1b; getter&#xff1a;侧重于对数据…...

springboot启动you will need to add ‘org.slf4j‘ to prefer-application-packages异常解决

摘自个人印象笔记2020-09-12内容&#xff1a;[https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7](https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7) 启动异常&#xff1a; Caused by: java.lang.IllegalArgumentException: LoggerFactory…...

云原生核心原则和特征

云原生&#xff08;Cloud Native&#xff09;是一种软件开发和部署方法论&#xff0c;旨在充分利用云计算的优势来构建和管理应用程序。云原生应用程序是专为在云环境中设计、构建和运行的应用程序。 以下是云原生的一些核心原则和特征&#xff1a; 微服务架构&#xff1a;云…...

【ElasticSearch入门】

目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群&#xff0c;ES是一个分布式的系统 3.3 Node节点&#xff0c;就是集群中的一台服务器 3.4 index 索引&#xff08;索引库&#xff09; 3.5 type类型 3.6 doc…...

SQL | 注释

2-注释 2.1-单行注释 select prod_name -- 这是一条行内注释 from products; 使用两个连字符(-- ) 放在行内&#xff0c;两个连字符后的内容即为注释内容。 # 这是一条注释 select prod_name from products; 这种注释方式可能有些数据库不支持&#xff0c;所以使用前应该…...

oi知识表+NOIP提高组算法及算法思想总结

&#xfeff;算法及算法思想总结 │ By lib │ ├暴力 ├模拟 ├递归及递推:数位统计类 ├构造 ▼├排序算法 │ ├冒泡排序 │ ├选择排序 │ ├计数排序 │ ├基数排序 │ ├插入排序 │ ├归并排序 │ ├快速排序 │…...

CentOS 7.9 离线安装 Docker 完整指南【20260425-003篇】

文章目录 ✅ 推荐方案一:二进制静态安装(推荐用于严格离线/快速验证/最小依赖) 步骤详解(全部命令在目标离线服务器执行): 1️⃣ 下载二进制包(在**有网机器**操作) 2️⃣ 上传并解压到离线服务器(如 `/root` 目录) 3️⃣ 安装二进制文件到系统 PATH 4️⃣ 创建 syst…...

MTConnect C++ Agent部署与配置实战:工业数据采集核心组件详解

1. 项目概述&#xff1a;一个工业数据“翻译官”的自我修养 如果你在制造业、工业自动化或者工业物联网&#xff08;IIoT&#xff09;领域摸爬滚打过&#xff0c;肯定遇到过这样的场景&#xff1a;车间里那几台宝贝机床&#xff0c;一台是德国的&#xff0c;一台是日本的&…...

LeaderF扩展开发指南:如何为LeaderF编写自定义插件

LeaderF扩展开发指南&#xff1a;如何为LeaderF编写自定义插件 【免费下载链接】LeaderF An efficient fuzzy finder that helps to locate files, buffers, mrus, gtags, etc. on the fly for both vim and neovim. 项目地址: https://gitcode.com/gh_mirrors/le/LeaderF …...

成品出库系统+ 称重检测:装车重量与订单比对,杜绝 “数量不符” 争议

“客户反馈收到的成品少了 2 箱&#xff0c;仓库却称已按订单发货”“装车时未核对重量&#xff0c;实际数量与订单不符&#xff0c;到货后双方各执一词”“人工清点成品数量耗时久&#xff0c;还易因计数错误导致错发漏发”—— 成品出库环节的 “数量争议”&#xff0c;不仅会…...

TLPI 第11章 练习:System Limits and Options

笔记和练习博客总目录见&#xff1a;开始读TLPI。 练习 11-1. 如果你有机会&#xff0c;尝试在其他 UNIX 实现上运行清单 11-1 中的程序。 其他UNIX&#xff0c;此处选择的是FreeBSD。首先参考博客VirtualBox上安装FreeBSD&#xff0c;创建一个FreeBSD系统。 然后参考博客在…...

GetQzonehistory:5分钟永久保存QQ空间说说的终极解决方案

GetQzonehistory&#xff1a;5分钟永久保存QQ空间说说的终极解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆时代&#xff0c;QQ空间承载了无数人的青春回忆&#xf…...

测试时数据增强(TTA)在表格数据中的实践指南

1. 测试时数据增强在表格数据中的应用测试时数据增强&#xff08;Test-Time Augmentation, TTA&#xff09;是一种提升预测模型性能的技术。虽然它最初是为图像数据设计的&#xff0c;但在表格数据上同样能发挥显著作用。作为一名从业多年的数据科学家&#xff0c;我发现很多同…...

Docker Desktop → Docker CE 完整迁移部署方案

全程分为 5 步&#xff1a;环境准备 → 迁移文件 → 部署配置 → 启动验证 → 维护规范。一、先明确两个环境区别Docker Desktop&#xff1a;开发用&#xff08;Windows/Mac&#xff09;&#xff0c;自带 ComposeDocker CE&#xff1a;Linux 服务器生产环境&#xff08;CentOS …...

用OpenMMLab全家桶做项目?先收好这份mmcv/mmdet版本兼容性自查清单(附最新PyTorch 2.0+适配指南)

OpenMMLab全栈开发实战&#xff1a;版本兼容性矩阵与工程化环境管理指南 在计算机视觉项目的实际开发中&#xff0c;环境配置往往成为第一个"拦路虎"。我曾参与过一个跨团队协作的工业质检项目&#xff0c;团队中三位工程师分别使用不同版本的mmdetection开发模块&a…...

【深度架构解析】高并发 AI 视频管理平台:兼容 GB28181/RTSP,支持 X86/ARM+GPU/NPU 异构部署与源码交付

前言&#xff1a;安防碎片化时代的破局之道 在传统的安防集成项目中&#xff0c;架构师常面临三大痛点&#xff1a;硬件生态割裂&#xff08;不同芯片厂商驱动不通&#xff09;、协议黑盒化&#xff08;GB28181接入复杂&#xff09;、以及开发周期冗长。为了实现一个稳健的 AI…...