分組與分組函數(shù)--=================================/*一、分組:分組函數(shù)可以對行集進(jìn)行操作,并且為每組給出一個(gè)結(jié)果。使用groupbycolumn1,column2,..按columm1,column2進(jìn)行分組,即column1,column2組合相同的值為一個(gè)組二、常用分組函數(shù):*/AVG([DISTINCT|ALL]n)--求平均" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL基礎(chǔ)-->分組與分組函數(shù)

系統(tǒng) 2112 0

--=================================

--SQL 基礎(chǔ) --> 分組與分組函數(shù)

--=================================

/*

一、分組:

??? 分組函數(shù)可以對行集進(jìn)行操作,并且為每組給出一個(gè)結(jié)果。

?? 使用 group by column1 column2,.. columm1,column2 進(jìn)行分組,即 column1,column2 組合相同的值為一個(gè)組

?

二、常用分組函數(shù): */

??? AVG ( [DISTINCT|ALL]n ) ??????? -- 求平均值,忽略空值

??? COUNT ({*| [DISTINCT|ALL]expr} ) ? -- 統(tǒng)計(jì)個(gè)數(shù),其中 expr 用來判定非空值 ( 使用 * 計(jì)算所有選定行,包括重復(fù)行和帶有空值的行 )

??? MAX ( [DISTINCT|ALL]expr ) ??????? -- 求最大值,忽略空值

??? MIN ( [DISTINCT|ALL]expr ) ??????? -- 求最小值,忽略空值

??? SUM ( [DISTINCT|ALL]n ) ?????? -- 求和,忽略空值

/*

三、分組函數(shù)語法: */

??? SELECT [column,] group_function ( column ), ...

??? FROM table

??? [WHERE condition]

??? [GROUP BY column]

??? [ORDER BY column] ;

/*

四、分組函數(shù)使用準(zhǔn)則:

??? DISTINCT 使函數(shù)只考慮非重復(fù)值, ALL 則考慮包括重復(fù)值在內(nèi)的所有值。默認(rèn)為 ALL

  帶有 expr 參數(shù)的函數(shù)的數(shù)據(jù)類型可以為 CHAR,VARCHAR2,NUMBER,DATE.

??? 所有分組函數(shù)都忽略空值。可以使用 NVL,NVL2, COALESCE 函數(shù)代替空值

??? 使用 GROUP BY 時(shí), Oralce 服務(wù)器隱式地按照升序?qū)Y(jié)果集進(jìn)行排序。可以使用 ORDER BY 更改排序結(jié)果。 ?

?

???? 可以使用 NVL 函數(shù)強(qiáng)制分組函數(shù)包含空值,如: */

??????? select avg ( nvl ( comm , 0 )) from emp ; ??

/* ????

五、 GROUP BY 子句的語法:

??? 使用 GROUP BY 子句可以將表中的行分成更小的組,然后使用分組函數(shù)返回每一組的匯總信息 */

??? SELECT column , group_function ( column )

??? FROM table

??? [WHERE condition]

??? [GROUP BY group_by_expression]

??? [ORDER BY column] ;

?

??? GROUP BY ? --group_by_expression 即為對哪些列進(jìn)行分組

/* ?

六、 GROUP BY 使用準(zhǔn)則:

??? SELECT 中出現(xiàn)的列,如果未出現(xiàn)在分組函數(shù)中,則 GROUP BY 子句必須包含這些列

??? WHERE 子句可以某些行在分組之前排除在外

??? 不能在 GROUP BY 中使用列別名

??? 默認(rèn)情況下 GROUP BY 列表中的列按升序排列

??? GROUP BY 的列可以不出現(xiàn)在分組中 ?

???

七、分組過濾:

??? 使用 having 子句

???

??? having 使用的情況:

?????? 行已經(jīng)被分組

?????? 使用了組函數(shù)

?????? 滿足 having 子句中條件的分組將被顯示

?

八、演示: */

-- 為數(shù)字?jǐn)?shù)據(jù)使用 AVG SUM 方法

??? SQL > select min ( sal ) as min_sal , max ( sal ) as max_sal ,

??? ? 2 ??? avg ( sal ) as avg_sal , sum ( sal ) as sum_sal

??? ? 3 ? from scott . emp ;

?

??? ?? MIN_SAL ??? MAX_SAL ??? AVG_SAL ??? SUM_SAL

??? ---------- ---------- ---------- ----------

?????? ?? 800 ?????? 5000 2073.21429 ????? 29025

?

-- 對于數(shù)字 , 字符和日期數(shù)據(jù)類型 , 你能使用 MIN MAX 方法 ?? ??

??? SQL > select min ( hiredate ) as min_hiredate , max ( hiredate ) as max_hiredate from scott . emp ;

?

??? MIN_HIRED MAX_HIRED

??? --------- ---------

??? 17 - DEC - 80 23 - MAY - 87

?

-- 使用 count(*),count(expr),count(distinct expr)

-- 注意 coung(*) 包含空值、重復(fù)值, count(expr) 過濾空值, count(distinct expr) 即過濾空值,也過濾重復(fù)值

??? SQL > select count (*), count ( mgr ), count ( distinct mgr ) from emp ;

?

??? ? COUNT (*) COUNT ( MGR ) COUNT ( DISTINCTMGR )

??? ---------- ---------- ------------------

?????????? 14 ???????? 13 ????????????????? 6

?

-- 使用 NVL 函數(shù)強(qiáng)制分組函數(shù)包含空值

??? SQL > select avg ( comm ) , avg ( nvl ( comm , 0 )) from emp ;

?

??? ? AVG ( COMM ) AVG ( NVL ( COMM , 0 ))

??? ---------- ----------------

?????? ?? 550 ?????? 157.142857 ???

?

-- 使用 group by 子句來分組

??? SQL > select job , avg ( sal ) from emp group by job ;

?

??? JOB ???????? AVG ( SAL )

??? --------- ----------

??? CLERK ???????? 1037.5

??? SALESMAN ??????? 1400

??? PRESIDENT ?????? 5000

??? MANAGER ?? 2758.33333

??? ANALYST ???? ???? 3000

?

--GROUP BY 的列可以不出現(xiàn)在分組中 ??

??? SQL > select avg ( sal ) from emp group by job order by avg ( sal ) desc ;

?

??? ? AVG ( SAL )

??? ----------

?????? ? 5000

?????? ? 3000

??? 2758.33333

?????? ? 1400

?????? 1037.5

?

-- 錯(cuò)誤的用法, SELECT 中的有些列沒有在 GROUP BY 子句中出現(xiàn)

??? SQL > select job , avg ( sal ) from emp ;

??? select job , avg ( sal ) from emp

?????? ?? *

??? ERROR at line 1 :

??? ORA - 00937 : not a single - group group function ?

?

-- 使用 having 子句過濾分組結(jié)果

-- 查詢平均工資高于的部門號,及其平均工資。

?

??? select deptno , avg ( sal ) from emp group by deptno

??? having avg ( sal )> 2000 ;

?

-- 查出平均工資在以上的工種 (job)

??? select job , avg ( sal ) from emp group by job having avg ( sal )> 2000 ;

???

-- 求人數(shù)在人以上的部門

??? select deptno , count (*) from emp group by deptno having count (*)> 5 ;

???

-- 使用分組函數(shù)的嵌套

??? SQL > select max ( avg ( sal )) from emp group by deptno ;

?

??? MAX ( AVG ( SAL ))

??? -------------

??? ?? 2916.66667

/*

九、更多 */

Oracle 數(shù)據(jù)庫實(shí)例啟動關(guān)閉過程

?

Oracle 10g SGA 的自動化管理

?

使用 OEM,SQL*Plus,iSQL*Plus 管理 Oracle 實(shí)例

?

Oracle 實(shí)例和 Oracle 數(shù)據(jù)庫 (Oracle 體系結(jié)構(gòu) )

?

SQL 基礎(chǔ) --> 常用函數(shù)

?

SQL 基礎(chǔ) --> 過濾和排序

?

SQL 基礎(chǔ) -->SELECT 查詢

?

SQL基礎(chǔ)-->分組與分組函數(shù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本黄色不卡视频 | 天天怕夜夜怕狠狠怕 | 国产精品高清在线观看 | 99热这里有免费国产精品 | 欧美久久视频 | 一级色黄 | 污视频在线免费播放 | 国产美女亚洲精品久久久综合 | 2021国产在线视频 | 奇米影视888狠狠狠777不卡 | 亚洲国产视频网站 | 成人在线精品 | 亚洲精品在线免费 | 久久精品av麻豆的观看方式 | 日韩六九视频 | 女人被狂躁视频免费网站 | 福利视频第一页 | 日韩精品一 | 久久色伦理资源站 | 久久亚洲精品中文字幕二区 | 无码AV免费一区二区三区A片 | 久久久久久久国产 | 奇米第四色网站 | 欧美一级特黄毛片免费 | 成人二区| 亚洲精品免费在线观看 | 亚洲亚洲人成综合网络 | 日本免费不卡在线一区二区三区 | 亚洲热在线| 天堂色在线 | 亚洲免费网 | 欧美亚洲一区二区三区在线 | 亚洲精品在线播放 | 欧美一区二区三区四区夜夜大片 | 污网站在线看 | 奇米第四色888 | 天天透天天干 | 亚洲国产欧美在线 | 日韩欧美一区二区三区 | 美国黄色毛片 | 天天操天天操天天操天天操 |