這裡介紹sql server2005裡面的乙個使用例項:
createtable tb(province nvarchar(10),city nvarchar(10),score int
) insert tb select'陝西
','西安
',3union
allselect'陝西
','安康
',4union
allselect'陝西
','漢中
',2union
allselect'廣東
','廣州
',5union
allselect'廣東
','珠海
',2union
allselect'廣東
','東莞
',3union
allselect'江蘇
','南京
',6union
allselect'江蘇
','蘇州
',1go
1、 只有乙個彙總
select province as 省,sum(score) as 分數 from tb groupby province with
rollup
結果:
廣東 10
江蘇 7
陝西 9
null
26
selectcase
when
grouping(province)=
1then'合計
'else province end
as 省,sum(score) as 分數 from tb group
by province with
rollup
結果:
廣東 10
江蘇 7
陝西 9
合計 26
2、兩級,中間小計最後彙總
select province as 省,city as 市,sum(score) as 分數 from tb groupby province,city with
rollup
結果:
廣東 東莞
3廣東 廣州
5廣東 珠海
2廣東
null
10江蘇 南京
6江蘇 蘇州
1江蘇
null
7陝西 安康
4陝西 漢中
2陝西 西安
3陝西
null
9null
null
26select province as 省,city as 市,sum(score) as 分數,grouping(province) as g_p,grouping(city) as g_c from tb group
by province,city with
rollup
結果:
廣東 東莞 30
0廣東 廣州 50
0廣東 珠海 20
0廣東
null100
1江蘇 南京 60
0江蘇 蘇州 10
0江蘇
null70
1陝西 安康 40
0陝西 漢中 20
0陝西 西安 30
0陝西
null90
1null
null261
1select
case
when
grouping(province)=
1then'合計
'else province end
省, case
when
grouping(city)=
1and
grouping(province)=
0then'小計
'else city end
市, sum(score) as
分數 from tb group
by province,city with
rollup
結果:
廣東 東莞
3廣東 廣州
5廣東 珠海
2廣東 小計
10江蘇 南京
6江蘇 蘇州
1江蘇 小計
7陝西 安康
4陝西 漢中
2陝西 西安
3陝西 小計
9合計
null
26
sql小計彙總 rollup用法
rollup在oracle sql server裡面都有有。這裡介紹sql server2005裡面的乙個使用例項 create table tb province nvarchar 10 city nvarchar 10 score int insert tb select 陝西 西安 3 uni...
block用法小計
預設情況下,任何block都是在棧中,隨時可能會被 對block設定copy屬性,block的記憶體就會放到堆裡面。book b book alloc init b.block 如果像上述寫法block所指向的 塊會強引用book的記憶體位址,使得book物件不能釋放,造成記憶體洩露。book b ...
使用CUBE和ROLLUP對資料進行彙總
it專家網獨家 想要找乙個既快捷又有效的方法來對您儲存在資料庫裡的資料進行彙總分析嗎?sql語言中的rollup和cube命令提供了乙個非常有用的工具,可以讓您快速深入地獲取資料的各種內在性質。rollup和cube是sql的擴充套件命令,可以在sql server 6.5 及以上版本 和oracl...