您现在的位置是:亿华云 > 应用开发
聊聊SQL中的分组集
亿华云2025-10-09 03:50:55【应用开发】0人已围观
简介本文转载自微信公众号「SQL数据库开发」,作者丶平凡世界 。转载本文请联系SQL数据库开发公众号。分组集的定义是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使
本文转载自微信公众号「SQL数据库开发」,聊聊作者丶平凡世界 。中组集转载本文请联系SQL数据库开发公众号。聊聊
分组集的中组集定义
是多个分组的并集,用于在一个查询中,聊聊按照不同的中组集分组列对集合进行聚合运算,等价于对单个分组使用"UNION ALL",聊聊计算多个结果集的中组集并集。
分组集种类
SQL Server的聊聊分组集共有三种 GROUPING SETS, CUBE, 以及ROLLUP, 其中 CUBE和ROLLUP可以当做是中组集GROUPING SETS的简写版
GROUPING SETS
GROUPING SETS子句允许你指定多个GROUP BY选项。增强了GROUP BY的聊聊功能。
可以通过一条SELECT语句实现复杂繁琐的中组集多条SELECT语句的查询。并且更加的聊聊
高效,免费信息发布网解析存储一条SQL于语句
GROUP SETS示例
我们以Customers表为例,中组集其内容如下:
我们先分别对城市和省份进行分组,聊聊统计出他们的数量
SELECT 城市,NULL 省份,COUNT(城市) FROM Customers GROUP BY 城市 UNION ALL SELECT NULL,省份,COUNT(省份) FROM Customers GROUP BY 省份结果为:
再使用GROUPING SETS来统计
SELECT 城市, 省份, COUNT(客户ID) 数量 FROM Customers GROUP BY GROUPING SETS (城市,省份)结果如下
其实上下两个结果是一样的,只是UNION ALL不排序,而GROUPING SETS增加了排序。这样不仅减少了代码,而且这样的效率会比UNION ALL的效率高。通常GROUPING SETS使用在组合分析中。
ROLLUP
ROLLUP也是GROUPING SETS的一种简略写法,我们举例说明。
我们先使用GROUPING SETS的多层组合
SELECT 省份, 城市, COUNT(1) 数量 FROM Customers GROUP BY GROUPING SETS ( 省份,(省份,城市) )其结果为:
我们使用ROLLUP可以这样写
SELECT 省份, 城市, COUNT(客户ID) 数量 FROM Customers GROUP BY 省份,城市 WITH ROLLUP其结果为:
我们来解读一下ROLLUP的作用,其作用是对每个列先进行一次分组,并且对第一列的亿华云数据在每个组内还进行一次汇总,最后对所有的数据再进行一次汇总,所以相比GROUPING SETS会多了个所以数据的汇总。这个在对组内进行聚合时是经常使用到的。
CUBE
而CUBE相比ROLLUP就更多一个维度了,我们还是距离说明。
SELECT 省份, 城市, COUNT(客户ID) 数量 FROM Customers GROUP BY 省份,城市 WITH CUBE结果如下:
在ROLLUP的基础上,还会将第一列每组的汇总数据额外显示在最后。
总结
分组集类似于Excel的透视图,可以对各类数据进行组内计算,这里不止可以进行数量统计,也可以进行求和,最大最小值等操作。是我们在进行数据分析时候经常使用到的一组功能。企商汇
很赞哦!(11498)
相关文章
- 4、注册门槛低
- 如何格式化日志并推送到远程服务器?看完原来很简单!!
- ElasticSearch 如何配置Uptime 监控组件可用性
- 戴尔科技PowerStoreOS 2.1性能再提升,升级无中断
- 在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
- 无服务器计算的利与弊
- 戴尔科技VxRail 不破不立,向复杂IT环境说“不”
- Tomcat竟然有bug,这我能信?
- 注册域名要了解几大点?新手有什么方式注册域名?
- 【Nginx】并发量太高,Nginx扛不住?这次我错怪Nginx了!!
站长推荐
5、使用企业名称的英文名称作为域名也是国内许多企业选择域名的一种方式,特别适合一些与计算机、网络和通信相关的行业。
FileZilla 搭建 FTP 服务器图解教程
Spring Security 如何处理 Session 共享
摩尔线程与Ampere Computing携手 共同加速云计算应用
众所周知,com域名拥有最大的流通市场和流通历史。最好选择com域名,特别是在购买域名时处理域名。其次可以是cn域名、net域名、org域名等主流域名,现在比较流行的王域名和顶级域名,都是值得注册和投资的。
面试官:来说说Tomcat的启动过程是什么样子的
OAuth2授权服务器Keycloak宣布不再适配Spring Boot和Spring Security
痛心:实验室服务器被挖矿怎么办?