sql小計彙總 rollup用法

2021-04-30 04:02:04 字數 1916 閱讀 7765

rollup在oracle ,sql-server裡面都有有。

這裡介紹sql server2005裡面的乙個使用例項:

create table tb(province nvarchar(10),city nvarchar(10),score int)

insert tb select '陝西','西安',3

union all select '陝西','安康',4

union all select '陝西','漢中',2

union all select '廣東','廣州',5

union all select '廣東','珠海',2

union all select '廣東','東莞',3

union all select '江蘇','南京',6

union all select '江蘇','蘇州',1

go1、 只有乙個彙總

select province as 省,sum(score) as 分數 from tb group by province with rollup

結果:廣東 10

江蘇 7

陝西 9

null 26

select case when grouping(province)=1 then '合計' 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 group by province,city with rollup

結果:廣東 東莞 3

廣東 廣州 5

廣東 珠海 2

廣東 null 10

江蘇 南京 6

江蘇 蘇州 1

江蘇 null 7

陝西 安康 4

陝西 漢中 2

陝西 西安 3

陝西 null 9

null null 26

select 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

結果:廣東 東莞 3 0 0

廣東 廣州 5 0 0

廣東 珠海 2 0 0

廣東 null 10 0 1

江蘇 南京 6 0 0

江蘇 蘇州 1 0 0

江蘇 null 7 0 1

陝西 安康 4 0 0

陝西 漢中 2 0 0

陝西 西安 3 0 0

陝西 null 9 0 1

null null 26 1 1

select case when grouping(province)=1 then '合計' else province end 省,

case when grouping(city)=1 and grouping(province)=0 then '小計' 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用法例項分析

這裡介紹sql server2005裡面的乙個使用例項 create table tb province nvarchar 10 city nvarchar 10 score int insert tb select 陝西 西安 3union allselect 陝西 安康 4union allse...

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...