OLAP函数系列1:SqlServer中分组函数GROUP BY 的扩展:all, cube,roolup与grouping

本文介绍了SQL Server中的GROUP BY扩展功能,包括GROUP BY ALL、GROUP BY CUBE和GROUP BY ROLLUP,它们在OLAP场景下用于数据库报表和统计分析。CUBE返回所有可能的组合,而ROLLUP则从右到左逐步累积求和。GROUPING函数用于辨别汇总列。文章通过实例详细解释了每个函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 概述:

       GROUP BY很常见,无须解释。GROUP BY结合all, cube,roolup作为OLAP(在线联机分析)常用函数,使用起来非常方便。上述OALP系列函数在数据库报表、统计分析、仓库处理等OLAP场景下可以实现很多功能,再结合窗口函数,必将发挥更大作用。

       通过精简的程序实现强大功能,起到事半功倍的效果,是任何一位开发人员孜孜以求的目标。任何一项新功能都是软件系统开发商基于市场需求,综合考虑开发的技术,用来满足某领域的实际需要。因此,作为程序开发人员,对新技术要时刻保持足够的嗅觉敏感性,达到最大化利用已有功能,实现开发速度和运行效率的最佳匹配。下面介绍OLAP系列函数GROUP BY扩展函数。

      具体说到GROUP BY 扩展功能中的CUBE和ROLLUP区别不太大,只是在基于GROUP BY 子句创建和汇总分组的可能的组合上有一定差别,CUBE将返回的更多的可能组合。如果在GROUP BY子句中有N个列或者是有N个表达式的话,SQLSERVER在使用CUBE的结果集上会返回2的N次幂个可能组合。

事例说明:

1、group by all

     Transact-SQL 在 GROUP BY 子句中提供 ALL 关键字。只有在 SELECT 语句还包括 WHERE 子句时,ALL 关键字才有意义。

如果使用 ALL 关键字,则即使某些组不包含符合搜索条件的行,查询结果也将包括 GROUP BY 子句生成的所有组。如果不使用 ALL 关键字,则包含 GROUP BY 子句的 SELECT 语句仅显示包含符合搜索条件的行的组。

    举例:找出机械学院中的人数。
SELECT
    DEPTName,
&nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值