真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

這篇文章給大家介紹Oracle數(shù)據(jù)庫中有哪些分組函數(shù),內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)公司服務項目包括和政網(wǎng)站建設、和政網(wǎng)站制作、和政網(wǎng)頁制作以及和政網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,和政網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到和政省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、group by的使用

--根據(jù)DEPTNO和JOB進行分組。求相同DEPTNO,相同JOB的員工工資總和。

SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY E.DEPTNO,E.JOB ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

2、group by 配合rollup的使用

rollup()--可以使用一個或者多個參數(shù)。意思是從右向左進行數(shù)據(jù)的匯總統(tǒng)計,并生成一行,rollup是個統(tǒng)計函數(shù)。

以下是根據(jù)分組情況進行統(tǒng)計,最終進行全部匯總。

(1)簡單的使用rollup--生成一行新數(shù)據(jù)。(要生成新的一行數(shù)據(jù),還可以使用UNION ALL)

SELECT D.DUMMY FROM DUAL D GROUP BY ROLLUP(D.DUMMY);

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

(2)先根據(jù)E.DEPTNO,E.JOB進行分組,然后從右向左

SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.DEPTNO,E.JOB) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

針對以上的使用ROLLUP的結(jié)果的理解:

a:首先根據(jù)GROUP BY E.DEPTNO,E.JOB查詢出9條數(shù)據(jù)(除4,8,12,13外),在根據(jù)rollup的定義,從右向左,對ROLLUP中的參數(shù)進行小計

首先根據(jù)JOB(對所有的JOB進行匯總),匯總出4,8,12行,在根據(jù)E.DEPTNO(對所有的DEPTNO進行匯總),匯總出第十三行數(shù)據(jù)。

(3) 特殊情況

SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.JOB,E.DEPTNO) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

理解:首先根據(jù)GROUP BY E.DEPTNO,E.JOB查詢出前九條數(shù)據(jù),其次對E.DEPTNO進行匯總,但是必須考慮JOB,也就是相同的JOB,的所有的工資總和,所以出現(xiàn)下面五條數(shù)據(jù)。

3、group by 配合cube的使用

SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY CUBE(E.DEPTNO,E.JOB) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

理解:CUBE會對條件中的每一個條件進行單獨的匯總:即對單獨的列進行匯總

GROUP  BY CUBE(E.DEPTNO,E.JOB)首先根據(jù):GROUP BY  E.DEPTNO,E.JOB查詢數(shù)據(jù),其次對E.JOB進行匯總(不考慮DEPTNO,單獨匯總,而ROLLUP是在同一個DEPTNO下面)再對E.DEPTNO進行匯總,最后全部匯總。

cube(a,b) 統(tǒng)計列包含:(a,b)、(a)、(b)、() cube(a,b,c) 統(tǒng)計列包含:(a,b,c)、(a,b)、(a,c)、(b,c)、(a)、(b)、(c)、()

4、GROUPING 的使用

GROUPING函數(shù)可以接受一列,返回0或者1。如果列值為空,那么GROUPING()返回1;如果列值非空,那么返回0。GROUPING只能在使用ROLLUP或CUBE的查詢中使用。當需要在返回空值的地方顯示某個值時,GROUPING()就非常有用。

SELECT GROUPING(E.DEPTNO), E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.DEPTNO,E.JOB) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

可以使用decode或者case函數(shù)進行轉(zhuǎn)換這種不友好的顯示:

SELECT  CASE WHEN grouping(E.DEPTNO) = 1 THEN '總計' ELSE E.DEPTNO || '' END AS 部門, CASE WHEN grouping(E.JOB) = 1 AND grouping(E.DEPTNO) = 0 THEN '小計' ELSE E.JOB END AS 工作種類, SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.DEPTNO,E.JOB) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

SELECT DECODE(GROUPING(E.DEPTNO), 1, '總計', E.DEPTNO) AS 部門, CASE WHEN GROUPING(E.JOB) = 1 AND GROUPING(E.DEPTNO) = 0 THEN '小計' ELSE E.JOB END AS 工作種類, SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.DEPTNO, E.JOB) ORDER BY E.DEPTNO;

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)

5、grouping sets提供了指定匯總集合條件的功能

根據(jù)E.DEPTNO,E.JOB分別匯總數(shù)據(jù)。

SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY GROUPING SETS(E.DEPTNO,E.JOB);

Oracle數(shù)據(jù)庫中有哪些分組函數(shù)


關(guān)于Oracle數(shù)據(jù)庫中有哪些分組函數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


標題名稱:Oracle數(shù)據(jù)庫中有哪些分組函數(shù)
轉(zhuǎn)載源于:http://weahome.cn/article/ijsijd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部