SQL SERVER 2008 GROUP BY GROUPING SETS
2012-11-17 14:37
423 查看
【SQL SERVER 2008 GROUP BY GROUPING SETS】 使用 GROUPING SETS 的 GROUP BY 子句可以生成一个等效于由多个简单 GROUP BY 子句的 UNION ALL 生成的结果集。GROUPING SETS 可以生成等效于由简单 GROUP BY、ROLLUP 或 CUBE 操作生成的结果。GROUPING SETS、ROLLUP 或 CUBE 的不同组合可以生成等效的结果集。 ------------------------------------------------------------- SELECT * FROM AdventureWorksDW.dbo.FactFinance --常用的分组方法 SELECT TimeKey,SUM(Amount) FROM FactFinance GROUP BY TimeKey SELECT TimeKey,OrganizationKey,SUM(Amount) FROM FactFinance GROUP BY TimeKey,OrganizationKey ------------------------------------------------------------- --合并显示(UNION ALL 的 GROUPING SETS 等效项) SELECT TimeKey,NULL,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS(TimeKey) UNION ALL SELECT NULL,OrganizationKey,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS(OrganizationKey) --分别按TimeKey分组和OrganizationKey分组,一起显示(同上结果) SELECT TimeKey,OrganizationKey,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS(OrganizationKey,TimeKey) SELECT TimeKey,OrganizationKey,DepartmentGroupKey,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS(DepartmentGroupKey,OrganizationKey,TimeKey) ------------------------------------------------------------- --按多层级分组 SELECT TimeKey,OrganizationKey,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS ( (TimeKey), (OrganizationKey,TimeKey) ) --等价于ROLLUP(但是有个全部总计) SELECT TimeKey,OrganizationKey,SUM(Amount) FROM FactFinance GROUP BY TimeKey,OrganizationKey WITH ROLLUP --更多的分层小计 SELECT TimeKey,OrganizationKey,DepartmentGroupKey,SUM(Amount) FROM FactFinance GROUP BY GROUPING SETS ( (TimeKey), (TimeKey,OrganizationKey), (TimeKey,OrganizationKey,DepartmentGroupKey) )
相关文章推荐
- T-SQL中的GROUP BY GROUPING SETS
- T-SQL中的GROUP BY GROUPING SETS
- Oracle Group By Grouping Sets
- T-SQL中的GROUP BY GROUPING SETS
- 通过GROUP BY grouping sets提升数据分组统计效率
- Hive_6. 数据聚合 -- Group By & Grouping_SETS & RollUp & CUBE & Having
- Oracle PL/SQL之GROUP BY GROUPING SETS
- group by grouping sets用法示例
- T-SQL中的GROUP BY GROUPING SETS
- SQL GROUP BY GROUPING SETS,ROLLUP,CUBE(需求举例)
- Oracle PL/SQL之GROUP BY GROUPING SETS
- GROUP BY GROUPING SETS 示例
- Oracle PL/SQL之GROUP BY GROUPING SETS
- T-SQL中的GROUP BY GROUPING SETS
- SQL Server 2008中的GROUPING SETS的应用实例
- Oracle PL/SQL之GROUP BY GROUPING SETS
- group by grouping sets
- group by grouping sets的使用
- oracle 小计合计之 group by grouping sets
- 基于Windows Server 2008 R2的WSFC实现SQL Server 2012高可用性组(AlwaysOn Group)