国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sql rollup用法 小計匯總

2020-10-30 19:12:11
字體:
來源:轉載
供稿:網友

這里介紹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
GO

1、 只有一個匯總

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五原县| 顺义区| 澄江县| 沙河市| 屏山县| 石楼县| 电白县| 桐梓县| 府谷县| 垣曲县| 承德县| 宜宾县| 长兴县| 普安县| 大邑县| 丹棱县| 方正县| 新化县| 日土县| 开平市| 茶陵县| 大化| 濮阳市| 旺苍县| 太谷县| 铁力市| 南华县| 常宁市| 丹寨县| 龙口市| 黔西| 依兰县| 常熟市| 葫芦岛市| 石林| 庆城县| 苏尼特右旗| 讷河市| 兰坪| 淮滨县| 分宜县|