概述:
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