這里介紹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
sql小計匯總 rollup用法實例分析
2021-10-07 22:40數據庫技術網 數據庫技術
rollup在oracle ,sql-server里面都有有。
延伸 · 閱讀
- 2022-03-09sql語句中union的用法與踩坑記錄
- 2022-03-09SQL利用游標遍歷日期查詢的過程詳解
- 2022-03-08SQL刪除重復的電子郵箱力扣題目解答流程
- 2022-03-03SQL行轉列與列轉行
- 2022-03-03一篇學會 Hive SQL 參數與性能調優
- 2022-03-03C#使用SQL DataAdapter數據適配代碼實例
- 數據庫技術
在將文本文件導入 MySQL 表時,MySQL 如何評估文本文件中寫入的兩
假設如果文本文件中寫入的兩行之間有一個空行,那么在將該文本文件導入 MySQL 表時,MySQL 會將其評估為數據行。可以通過以下示例來理解 - 示例 假設我...
- 數據庫技術
如何實現MySQL中修改表結構的語句?
如何實現MySQL中修改表結構的語句? MySQL 是一種流行的關系型數據庫管理系統(RDBMS),用于存儲和管理大量的數據。在實際的開發過程中,經常需要修改...
- 數據庫技術
利用MongoDB技術開發中遇到的數據刪除問題的解決方案探究
利用MongoDB技術開發中遇到的數據刪除問題的解決方案探究 引言: 隨著互聯網和移動互聯網的興起,數據的管理變得愈發重要。在開發過程中,我們經常需...
- 數據庫技術
oracle可以重復索引嗎
Oracle不允許重復索引。在Oracle數據庫中,創建重復索引是不被允許的,并且會引發錯誤。 索引是一種用于提高數據庫查詢性能的數據結構。它們允許快速訪...
- 數據庫技術
阿里云創建云數據庫服務器
阿里云 是中國領先的云計算服務提供商,提供了一系列強大的云計算產品和服務。其中, 阿里云 數據庫服務器(ApsaraDB for RDS)是一種托管式的關系型數據...
- 數據庫技術
SQL中case?when?then?else?end用法實例
一、闡述 case when then else end 可以理解為java的if-else if -else。可以理解為流程控制語句或條件控制語句。可以實現資料獲取的時候,可以更多的條件和自定義...
- 數據庫技術
阿里云服務器怎么拷貝數據庫
阿里 云服務器 是一種云計算服務,提供了強大的云服務器資源,讓用戶可以方便地創建、管理和運行自己的應用程序。拷貝數據庫是在服務器遷移、備份...
- 數據庫技術
sql小計匯總 rollup用法實例分析
rollup在oracle ,sql-server里面都有有。...