sql小計(jì)匯總 rollup用法實(shí)例分析
更新時(shí)間:2009年06月26日 17:47:28 作者:
rollup在oracle ,sql-server里面都有有。
這里介紹sql server2005里面的一個(gè)使用實(shí)例:
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、 只有一個(gè)匯總
select province as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
結(jié)果:
廣東 10
江蘇 7
陜西 9
NULL 26
select case when grouping(province)=1 then '合計(jì)' else province end as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
結(jié)果:
廣東 10
江蘇 7
陜西 9
合計(jì) 26
2、兩級,中間小計(jì)最后匯總
select province as 省,city as 市,sum(score) as 分?jǐn)?shù) from tb group by province,city with rollup
結(jié)果:
廣東 東莞 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 分?jǐn)?shù),grouping(province) as g_p,grouping(city) as g_c from tb group by province,city with rollup
結(jié)果:
廣東 東莞 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 '合計(jì)' else province end 省,
case when grouping(city)=1 and grouping(province)=0 then '小計(jì)' else city end 市,
sum(score) as 分?jǐn)?shù)
from tb group by province,city with rollup
結(jié)果:
廣東 東莞 3
廣東 廣州 5
廣東 珠海 2
廣東 小計(jì) 10
江蘇 南京 6
江蘇 蘇州 1
江蘇 小計(jì) 7
陜西 安康 4
陜西 漢中 2
陜西 西安 3
陜西 小計(jì) 9
合計(jì) NULL 26
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、 只有一個(gè)匯總
select province as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
結(jié)果:
廣東 10
江蘇 7
陜西 9
NULL 26
select case when grouping(province)=1 then '合計(jì)' else province end as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
結(jié)果:
廣東 10
江蘇 7
陜西 9
合計(jì) 26
2、兩級,中間小計(jì)最后匯總
select province as 省,city as 市,sum(score) as 分?jǐn)?shù) from tb group by province,city with rollup
結(jié)果:
廣東 東莞 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 分?jǐn)?shù),grouping(province) as g_p,grouping(city) as g_c from tb group by province,city with rollup
結(jié)果:
廣東 東莞 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 '合計(jì)' else province end 省,
case when grouping(city)=1 and grouping(province)=0 then '小計(jì)' else city end 市,
sum(score) as 分?jǐn)?shù)
from tb group by province,city with rollup
結(jié)果:
廣東 東莞 3
廣東 廣州 5
廣東 珠海 2
廣東 小計(jì) 10
江蘇 南京 6
江蘇 蘇州 1
江蘇 小計(jì) 7
陜西 安康 4
陜西 漢中 2
陜西 西安 3
陜西 小計(jì) 9
合計(jì) NULL 26
相關(guān)文章
使用sqlalchemy-gbasedbt連接GBase 8s數(shù)據(jù)庫的步驟詳解
這篇文章主要介紹了使用sqlalchemy-gbasedbt連接GBase 8s數(shù)據(jù)庫的步驟詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04詳細(xì)聊聊關(guān)于sql注入的一些零散知識點(diǎn)
SQL注入攻擊是通過將惡意的SQL查詢或添加語句插入到應(yīng)用的輸入?yún)?shù)中,再在后臺SQL服務(wù)器上解析執(zhí)行進(jìn)行的攻擊,它目前是黑客對數(shù)據(jù)庫進(jìn)行攻擊的最常用的手段之一,這篇文章主要給大家介紹了關(guān)于sql注入的一些零散知識點(diǎn),需要的朋友可以參考下2021-10-10在PostgreSQL中實(shí)現(xiàn)遞歸查詢的教程
這篇文章主要介紹了在PostgreSQL中實(shí)現(xiàn)遞歸查詢的教程,包括在遞歸查詢內(nèi)排序等方法的介紹,需要的朋友可以參考下2015-04-04postgres 數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)換
postgres8.3以后,字段數(shù)據(jù)之間的默認(rèn)轉(zhuǎn)換取消了。如果需要進(jìn)行數(shù)據(jù)變換的話,在postgres數(shù)據(jù)庫中,我們可以用"::"來進(jìn)行字段數(shù)據(jù)的類型轉(zhuǎn)換。2009-07-07復(fù)制數(shù)據(jù)庫表中兩個(gè)字段數(shù)據(jù)的SQL語句
今天為表新添加一個(gè)字段,但又想與表中的另一個(gè)字段值相同,由于數(shù)據(jù)過多想通過sql語句實(shí)現(xiàn),經(jīng)測試下面的這句話確實(shí)很好用2013-07-07一次因表變量導(dǎo)致SQL執(zhí)行效率變慢的實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了一次因表變量導(dǎo)致SQL執(zhí)行效率變慢的實(shí)戰(zhàn)記錄,本文通過圖文以及示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者了解sql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-11-11sql中l(wèi)eft join的效率分析與提高效率方法
網(wǎng)站隨著數(shù)據(jù)量與訪問量越來越大,訪問的速度變的越來越慢,于是開始想辦法解決優(yōu)化速度慢的原因,下面是對程序中一條sql的分析與提高效率的過程2018-03-03