Grouping Sets in SQL Server 2008 and later

This article discusses about Grouping Sets in SQL Server 2008 and later. Read below to see how you can work without and how you can work with Grouping Sets in order to understand the benefits of this cool feature.

Consider a database table containing sales data.
The name of the table is dbo.[sales]

Example without using Grouping Sets

Consider a scenario where the management has asked the database developer to get all the sales records grouped by region and area, then the records grouped only by area and then the records grouped only by region. All of the above should be provided by one SQL query. The traditional way of implementing a query with these multiple groupings would be the following:

--Sales by region, by area
select region,area,SUM(sales_amount) as salesytd
from dbo.[sales]
group by region, area
UNION ALL
--Sales by area
select null as region,area,SUM(sales_amount) as salesytd
from dbo.[sales]
group by area
UNION ALL
--Sales by region
select region,null as area,SUM(sales_amount) as salesytd
from dbo.[sales]
group by region

 

Example without using Grouping Sets

Grouping Sets is a new T-SQL enhancement in SQL Server 2008. To this end with a special syntax we are able to define multiple groupings (that is, grouping sets) within a single T-SQL statement.

Rewriting the above statement by using grouping sets we have the following code:

--Sales (by region, by area), (by area), (by region)
select region,area,SUM(sales_amount) as salesytd
from dbo.[sales]
group by grouping sets (
(region, area),
(area),
(region)
)

It is obvious that grouping sets simplify the cases where we need to perform multiple groupings in our SQL queries. This applies very well on Data Warehouse Management System’s queries among others.

 

Read Also:

 

Featured Database Productivity Tools

Snippets Generator: Create and modify T-SQL snippets for use in SQL Management Studio, fast, easy and efficiently.

Snippets Generator - SQL Snippets Creation Tool

Learn more

 

Dynamic SQL Generator: Convert static T-SQL code to dynamic and vice versa, easily and fast.

Dynamic SQL Generator: Easily convert static SQL Server T-SQL scripts to dynamic and vice versa.

Learn more

 

Subscribe to our newsletter and stay up to date!

Check out our latest software releases!

Check out Artemakis’s eBooks!

 

Rate this article: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Loading...

Reference: SQLNetHub.com (https://www.sqlnethub.com)

© SQLNetHub