A.G.
A.G.

Reputation: 2149

How to write One query for multiple groupings?

In the queries below, how can I make just one query that will give me the results, instead of making copies with diff groupings and unioning them?

If possible.

Thanks in advance!!

`create table #temp1 (col1 varchar(50), col2 varchar(50), col3 varchar(50), col4 varchar(50), col5 varchar(50), sumit int)

insert into #temp1 values('AEAMS','CE Europe', 'Belarus', 'Govt', 'Int Fed Gvt', 1)
insert into #temp1 values('AEAMS','CE Europe', 'Belarus', 'Govt', 'Public Lib', 1)
insert into #temp1 values('AEDS','Japan', 'Japan C', 'Acad', 'CollUnive', 1)
insert into #temp1 values('AEDS','Japan', 'Japan F', 'Acad', 'Med', 1)
insert into #temp1 values('A- Regular Databases','UK and Ireland', 'Ireland', 'School', 'HIGH SCHOOL', 1)


Select col1 CC, null GM, null Terr, null Mkt, null Seg,  sum(sumit) SS
from #temp1
group by col1

Union

Select col1 CC, col2 GM, null Terr, null Mkt, null Seg,  sum(sumit) SS
from #temp1
group by col1, col2

Union

Select col1 CC, col2 GM, col3 Terr, null Mkt, null Seg,  sum(sumit) SS
from #temp1
group by col1, col2, col3

Union

Select col1 CC, col2 GM, col3 Terr, col4 Mkt, null Seg,  sum(sumit) SS
from #temp1
group by col1, col2, col3, col4, col5

Upvotes: 0

Views: 100

Answers (1)

D'Arcy Rittich
D'Arcy Rittich

Reputation: 171491

Try using WITH ROLLUP:

Select col1 CC, col2 GM, col3 Terr, col4 Mkt, null Seg,  sum(sumit) SS
from #temp1
group by col1, col2, col3, col4, col5
with rollup

SQL Fiddle Example

Upvotes: 4

Related Questions