成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

數(shù)據(jù)庫(kù) Oracle
今天主要分享下Oracle數(shù)據(jù)庫(kù)分組函數(shù)group by 、 rollup、cude、grouping 、grouping sets的常用用法,以下以O(shè)racle自帶schema做演示。

概述

今天主要分享下Oracle數(shù)據(jù)庫(kù)分組函數(shù)group by 、 rollup、cude、grouping 、grouping sets的常用用法,以下以O(shè)racle自帶schema做演示。

1、group by的使用

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

  1. SELECT E.DEPTNO,E.JOB,SUM(E.SAL) FROM EMP E GROUP BY E.DEPTNO,E.JOB ORDER BY E.DEPTNO; 
超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

2、group by 配合rollup的使用

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

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

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

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

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 

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

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

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 

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

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

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

(3) 特殊情況

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

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 

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

3、group by 配合cube的使用

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

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 

理解:CUBE會(huì)對(duì)條件中的每一個(gè)條件進(jìn)行單獨(dú)的匯總:即對(duì)單獨(dú)的列進(jìn)行匯總

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

  1. cube(a,b) 統(tǒng)計(jì)列包含:(a,b)、(a)、(b)、() 
  2. cube(a,b,c) 統(tǒng)計(jì)列包含:(a,b,c)、(a,b)、(a,c)、(b,c)、(a)、(b)、(c)、() 

4、GROUPING 的使用

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

  1. 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; 

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 

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

  1. SELECT  
  2. CASE WHEN grouping(E.DEPTNO) = 1 
  3. THEN '總計(jì)' 
  4. ELSE E.DEPTNO || '' 
  5. END AS 部門(mén), 
  6. CASE WHEN grouping(E.JOB) = 1 AND grouping(E.DEPTNO) = 0 
  7. THEN '小計(jì)' 
  8. ELSE E.JOB 
  9. END AS 工作種類(lèi), 
  10. SUM(E.SAL) FROM EMP E GROUP BY ROLLUP(E.DEPTNO,E.JOB) 
  11. ORDER BY E.DEPTNO; 
超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)
  1. SELECT DECODE(GROUPING(E.DEPTNO), 1, '總計(jì)', E.DEPTNO) AS 部門(mén), 
  2. CASE 
  3. WHEN GROUPING(E.JOB) = 1 AND GROUPING(E.DEPTNO) = 0 THEN 
  4. '小計(jì)' 
  5. ELSE 
  6. E.JOB 
  7. END AS 工作種類(lèi), 
  8. SUM(E.SAL) 
  9. FROM EMP E 
  10. GROUP BY ROLLUP(E.DEPTNO, E.JOB) 
  11. ORDER BY E.DEPTNO; 

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

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

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

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

超詳細(xì)的5個(gè)Oracle數(shù)據(jù)庫(kù)分組函數(shù)總結(jié)

 


 

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2019-08-01 07:31:51

數(shù)據(jù)庫(kù)主機(jī)日志

2019-10-22 07:50:45

SqlServer數(shù)據(jù)庫(kù)觸發(fā)器

2023-02-28 00:01:53

MySQL數(shù)據(jù)庫(kù)工具

2019-04-02 10:36:17

數(shù)據(jù)庫(kù)MySQL優(yōu)化方法

2019-09-10 07:58:01

字符集MySQL數(shù)據(jù)庫(kù)

2019-09-11 11:38:30

MySQLInnoDB數(shù)據(jù)庫(kù)

2019-08-20 09:46:14

DBA收藏腳本語(yǔ)言

2019-06-18 10:31:23

數(shù)據(jù)庫(kù)端口URL

2017-06-01 15:58:42

Oracle數(shù)據(jù)庫(kù)安全管理

2019-08-20 22:06:32

Oracle數(shù)據(jù)庫(kù)索引

2011-05-26 13:29:30

ORACLE數(shù)據(jù)庫(kù)升級(jí)

2010-04-13 10:32:40

Oracle數(shù)據(jù)庫(kù)編程

2010-04-20 10:41:49

Oracle數(shù)據(jù)庫(kù)

2011-04-12 10:09:33

Oracle數(shù)據(jù)庫(kù)關(guān)閉

2018-12-12 19:10:01

Oracle數(shù)據(jù)庫(kù)自動(dòng)備份

2019-07-23 07:52:41

數(shù)據(jù)庫(kù)MySQL優(yōu)化方法

2011-06-14 15:11:59

ORACLE

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2011-03-17 14:09:25

Oracle數(shù)據(jù)庫(kù)字符

2019-10-16 00:37:36

Oracle數(shù)據(jù)庫(kù)游標(biāo)數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久精品天堂 | 一级片网站视频 | 国产视频二区 | 精品少妇一区二区三区日产乱码 | 7777在线| 国产精品夜间视频香蕉 | 中文字幕中文字幕 | 在线国产中文字幕 | 偷拍第一页 | 亚洲欧美在线观看 | 国产精品久久九九 | 一级a毛片 | julia中文字幕久久一区二区 | 国产a区 | 日日日操 | 电影91久久久 | 精品一区二区三区不卡 | 性欧美精品一区二区三区在线播放 | 精品亚洲一区二区 | www日韩欧美 | 国产一区2区 | 久久久久国产精品人 | 亚洲精品一 | 欧美日韩国产高清视频 | 亚洲欧美日韩久久 | 午夜精品一区二区三区在线观看 | 成人免费在线观看 | 久久精品色欧美aⅴ一区二区 | 亚洲网址 | 欧美精品久久 | 成年人在线观看视频 | 黑人巨大精品欧美一区二区免费 | 国产精品国产a | 精品国产乱码久久久久久闺蜜 | 91精品国产日韩91久久久久久 | 成人影院网站ww555久久精品 | 免费黄色大片 | 亚洲交性 | 羞羞的视频免费在线观看 | 91免费观看 | 久久久免费精品 |