Getting Started with Adobe After Effects - Part 6: Motion Blur


Upload Image Close it
Select File

My Experiments with SQLServer
Browse by Tags · View All
SQLServer 126
SQLServer 2008 R2 91
SQLServer 2008 86
SQLServer 2005 82
SQL 60
Database 59
Sql And Me 57
Tips & Tricks 28
SQL Server 27
SQL FAQ 26

Archive · View All
May 2011 25
June 2011 21
July 2011 21
August 2011 19
April 2011 16
January 2013 4
May 2012 3
April 2012 3
October 2011 3
February 2013 2

Vishal Gajjar's Blog

SQL Server – TSQL – GROUP BY CUBE()

Jul 8 2011 8:14AM by Vishal Gajjar   

CUBE() produces the result set by generating all combinations of columns specified in GROUP BY CUBE(). As with GROUP BY ROLLUP() it adds sub-total and grand-total rows as well.

For example, consider below data:

-- © 2011 – Vishal (http://SqlAndMe.com)
 
SELECT      [Group], [Name], [SalesYTD]
FROM        dbo.Sales

Result Set:

Group                Name          SalesYTD
——————-              ————          —————
North America        Northwest     123237.00
South America        Northwest      37534.00
South America        Southwest      39667.00
North America        Southwest     164232.00
 
(4 row(s) affected)

When we apply GROUP BY CUBE([Group], [Name]) to this data, it will generate:

1. Combination of all columns specified:

([Group]) – 2 rows (North America, South America)

([Name]) – 2 rows (Northwest, Southwest)

2. Sub-total rows:

Sub-total for Northwest, Southwest – 2 rows

Sub-total for North America, South America – 2 rows

3. Grand-total row: 1 row

Thereby, the result set will contain 9 rows as below:

SELECT      COALESCE([Group], 'ALL') AS 'Group',
            COALESCE([Name],'ALL') AS 'Name',
            SUM([SalesYTD]) AS 'Total Sales'
FROM        dbo.Sales
GROUP BY CUBE ([Group], [Name])

Result Set:

Group                Name                 Total Sales
——————-              ——————-              ——————
North America        Northwest            123237.00
South America        Northwest             37534.00
ALL                  Northwest            160771.00
North America        Southwest            164232.00
South America        Southwest             39667.00
ALL                  Southwest            203899.00
ALL                  ALL                  364670.00
North America        ALL                  287469.00
South America        ALL                   77201.00
 
(9 row(s) affected)

If GROUP BY ROLLUP() is used here, it will generate 7 rows, removing 2 sub-total rows for [Group] column from the result set:

SELECT      COALESCE([Group], 'ALL') AS 'Group',
            COALESCE([Name],'ALL') AS 'Name',
            SUM([SalesYTD]) AS 'Total Sales'
FROM        dbo.Sales
GROUP BY ROLLUP ([Group], [Name])

Result Set:

Group                Name                 Total Sales
——————-              ——————-              ——————
North America        Northwest            123237.00
North America        Southwest            164232.00
North America        ALL                  287469.00
South America        Northwest            37534.00
South America        Southwest            39667.00
South America        ALL                  77201.00
ALL                  ALL                  364670.00
 
(7 row(s) affected)

Hope This Helps! Cheers!


Republished from Sql&Me [31 clicks].  Read the original version here [32134 clicks].

Vishal Gajjar
46 · 4% · 1276
0
Liked
 
0
Lifesaver
 
0
Refreshed
 
0
Learned
 
0
Incorrect



Submit

Your Comment


Sign Up or Login to post a comment.

    Copyright © Rivera Informatic Private Ltd Contact us      Privacy Policy      Terms of use      Report Abuse      Advertising      [ZULU1097]