日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

rollup的用法

發(fā)布時(shí)間:2024/6/21 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 rollup的用法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天接觸到了group by后帶rollup子句的用法(真是丑死人了,接觸ORACLE一兩年了今天才知道還有這樣一個(gè)用法),group by后帶rollup子句這個(gè)子句所產(chǎn)生的功能實(shí)在是太高級(jí)了,見了就高興。但學(xué)習(xí)完后感覺也沒什么的,很簡單的。

下面按我的理解簡單總結(jié)一下:

一、如何理解group by后帶rollup子句所產(chǎn)生的效果

group by后帶rollup子句的功能可以理解為:先按一定的規(guī)則產(chǎn)生多種分組,然后按各種分組統(tǒng)計(jì)數(shù)據(jù)(至于統(tǒng)計(jì)出的數(shù)據(jù)是求和還是最大值還是平均值等這就取決于SELECT后的聚合函數(shù))。因此要搞懂group by后帶rollup子句的用法主要是搞懂它是如何按一定的規(guī)則產(chǎn)生多種分組的。另group by后帶rollup子句所返回的結(jié)果集,可以理解為各個(gè)分組所產(chǎn)生的結(jié)果集的并集且沒有去掉重復(fù)數(shù)據(jù)。下面舉例說明:

1、對比沒有帶rollup的goup by

例:Group by A ,B

產(chǎn)生的分組種數(shù):1種;

即group by A,B

返回結(jié)果集:也就是這一種分組的結(jié)果集。

2、帶rollup但group by與rollup之間沒有任何內(nèi)容

例1:Group by rollup(A ,B)

產(chǎn)生的分組種數(shù):3種;

第一種:group by A,B

第二種:group by A

第三種:group by NULL

(說明:本沒有g(shù)roup by NULL 的寫法,在這里指是為了方便說明,而采用之。含義是:沒有分組,也就是所有數(shù)據(jù)做一個(gè)統(tǒng)計(jì)。例如聚合函數(shù)是SUM的話,那就是對所有滿足條件的數(shù)據(jù)進(jìn)行求和。此寫法的含義下同)

返回結(jié)果集:為以上三種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

例2:Group by rollup(A ,B,C)

產(chǎn)生的分組種數(shù):4種;

第一種:group by A,B,C

第二種:group by A,B

第三種:group by A

第四種:group by NULL

返回結(jié)果集:為以上四種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

3、帶rollup但group by與rollup之間還包含有列信息

例1:Group by A , rollup(A ,B)

產(chǎn)生的分組種數(shù):3種;

第一種:group by A,A,B 等價(jià)于group by A,B

第二種:group by A,A 等價(jià)于group by A

第三種:group by A,NULL 等價(jià)于group by A

返回結(jié)果集:為以上三種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

例2:Group by C , rollup(A ,B)

產(chǎn)生的分組種數(shù):3種;

第一種:group by C,A,B

第二種:group by C,A

第三種:group by C,NULL 等價(jià)于group by C

返回結(jié)果集:為以上三種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

4、帶rollup且rollup子句括號(hào)內(nèi)又使用括號(hào)對列進(jìn)行組合

例1:Group by rollup((A ,B))

產(chǎn)生的分組種數(shù):2種;

第一種:group by A,B

第二種:group by NULL

返回結(jié)果集:為以上兩種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

例2:Group by rollup(A ,(B,C))

產(chǎn)生的分組種數(shù):3種;

第一種:group by A,B,C

第二種:group by A

第三種:group by NULL

返回結(jié)果集:為以上三種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

注:對這種情況,可以理解為幾個(gè)列被括號(hào)括在一起時(shí),就只能被看成一個(gè)整體,分組時(shí)不需要再細(xì)化。因此也可推斷rollup括號(hào)內(nèi)也頂多加到一重括號(hào),加多重了應(yīng)該沒有任何意義(這個(gè)推斷我沒有做驗(yàn)證的哦)。

二、與rollup組合使用的其它幾個(gè)輔助函數(shù)

1、grouping()函數(shù)

必須接受一列且只能接受一列做為其參數(shù)。參數(shù)列值為空返回1,參數(shù)列值非空返回0。

2、grouping_id()函數(shù)

必須接受一列或多列做為其參數(shù)。

返回值為按參數(shù)排列順序,依次對各個(gè)參數(shù)使用grouping()函數(shù),并將結(jié)果值依次串成一串二進(jìn)制數(shù)然后再轉(zhuǎn)化為十進(jìn)制所得到的值。

例如:grouping(A) = 0 ; grouping(B) = 1;

則:grouping_id(A,B) = (01)2 = 1;

grouping_id(B,A) = (10)2 =2;

3、group_id()函數(shù)

調(diào)用時(shí)不需要且不能傳入任何參數(shù)。

返回值為某個(gè)特定的分組出現(xiàn)的重復(fù)次數(shù)(第一大點(diǎn)中的第3種情況中往往會(huì)產(chǎn)生重復(fù)的分組)。重復(fù)次數(shù)從0開始,例如某個(gè)分組第一次出現(xiàn)則返回值為0,第二次出現(xiàn)時(shí)返回值為1,……,第n次出現(xiàn)返回值為n-1。

注:使用以上三個(gè)函數(shù)往往是為了過濾掉一部分統(tǒng)計(jì)數(shù)據(jù),而達(dá)到美化統(tǒng)計(jì)結(jié)果的作用。

三、group by后帶rollup子句與group by后帶cube子句區(qū)別

group by后帶rollup子句與group by后帶cube子句的唯一區(qū)別就是:

帶cube子句的group by會(huì)產(chǎn)生更多的分組統(tǒng)計(jì)數(shù)據(jù)。cube后的列有多少種組合(注意組合是與順序無關(guān)的)就會(huì)有多少種分組。

例:Group by cube(A ,B,C)

產(chǎn)生的分組種數(shù):8種;

第一種:group by A,B,C

第二種:group by A,B

第三種:group by A,C

第四種:group by B,C

第五種:group by C

第六種:group by B

第七種:group by A

第八種:group by NULL

返回結(jié)果集:為以上八種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

四、group by后帶grouping sets子句

group by后帶grouping sets子句效果就是只返回小記記錄,即只返回按單個(gè)列分組后的統(tǒng)計(jì)數(shù)據(jù),不返回多個(gè)列組合分組的統(tǒng)計(jì)數(shù)據(jù)。

例1:Group by grouping sets(A )

產(chǎn)生的分組種數(shù):1種;

第一種:group by A

返回結(jié)果集:即為以上一種分組的統(tǒng)計(jì)結(jié)果集。

例2:Group by grouping sets(A ,B)

產(chǎn)生的分組種數(shù):2種;

第一種:group by A

第二種:group by B

返回結(jié)果集:為以上兩種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

例3:Group by grouping sets (A ,B,C)

產(chǎn)生的分組種數(shù):3種;

第一種:group by A

第二種:group by B

第三種:group by C

返回結(jié)果集:為以上三種分組統(tǒng)計(jì)結(jié)果集的并集且未去掉重復(fù)數(shù)據(jù)。

select t.city_name,

decode(t.directline_type,

null,

'總數(shù)',

directline_type,

directline_type),

sum(t.amount)

from tmp_dl_info t

group by rollup(t.city_name, t.directline_type)

為了您的安全,請只打開來源可靠的網(wǎng)址

打開網(wǎng)站 取消

來自: http://hi.baidu.com/xbnh0217/blog/item/88923d47c04e4c076b63e5df.html

總結(jié)

以上是生活随笔為你收集整理的rollup的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97成人超碰 | 亚洲国产精品国自产拍久久 | 免费在线黄色网 | 精品一区二区三区免费看 | 精品国产成人av在线免 | 男人天堂手机在线观看 | 日韩av福利 | 国产香蕉尹人视频在线 | 亚洲欧美一区二区精品久久久 | 综合视频 | 免费午夜av| 色婷婷激情综合 | 激情五月综合色婷婷一区二区 | 蜜乳av一区| 国产高清视频在线播放 | 久久视频一区二区三区 | 欧美亚洲综合网 | 中文字幕有码在线 | 日日干日日射 | 亚洲网站在线免费观看 | 日韩欧美黄色网址 | 日本在线观看www | 亚洲福利视频一区二区三区 | 另类中文字幕 | 久久大片| www伊人网 | 日韩不卡免费 | 午夜国产一区 | 国产一区黄 | 麻豆黄色网址 | 久久精品视频网站 | 污污视频网站免费观看 | 国内自拍99 | 亚洲成人国产精品 | 久久久久国产 | 国产高清一区二区 | 国产偷拍一区二区三区 | 国产毛片3 | 久久人人澡 | 午夜精品99 | 欧美激情一区 | 四虎影库在线播放 | 国产日产精品一区二区三区四区 | 精品视频日韩 | 亚洲成人乱码 | 日韩无码精品一区二区三区 | 国产成人精品免高潮费视频 | 成人xxxx | 天天干天天摸 | 牛牛av国产一区二区 | 国产精品视频自拍 | 名人明星三级videos | 一区黄色| 爱搞逼综合 | 欧美一级片网址 | 日韩精品一区二区三区av | 国产婷婷色一区二区三区 | 成人av免费播放 | 欧美一级片在线视频 | 国产高清视频在线免费观看 | 中文字幕av一区二区三区谷原希美 | 久久久久毛片 | 欧美日韩亚洲色图 | 好吊操这里只有精品 | 一区在线视频 | 日本三级不卡 | 骚鸭av | 韩国三级hd中文字幕有哪些 | 国产主播一区 | 久久理论视频 | av生活片| 四虎视频在线 | 国产精品99久久 | 免费在线观看高清影视网站 | 黄网地址 | 狠狠综合 | 伦理片av | aa视频免费观看 | 骚虎tv| 91视频看看 | 伊朗做爰xxxⅹ性视频 | 日日爽夜夜 | av中字| 久久嫩草精品久久久久 | 顶级尤物极品女神福利视频 | 亚州av免费 | 北条麻妃在线一区 | 四虎少妇做爰免费视频网站四 | 自拍偷拍第1页 | 国产剧情一区二区 | 少妇久久久久久被弄高潮 | 亚洲小说区图片区 | 麻豆自拍视频 | 五月婷婷国产 | 秋霞精品一区二区三区 | 天天弄天天干 | 国产一区不卡在线观看 | 亚洲欧美日韩精品久久亚洲区 | 欧美激情一区二区视频 |