Oracle中g(shù)roup by用法

Oracle中g(shù)roup?by用法

在帶有g(shù)roup?by?子句的查詢語句中,在select?列表中指定的列要么是group?by?子句中指定的列,要么包含聚組函數(shù)

簡單用法

select?max(sal),job?emp?group?by?job;

查詢語句的select?和group?by?,having?子句是聚組函數(shù)唯一出現(xiàn)的地方,在where?子句中不能使用聚組函數(shù)。

select?deptno,sum(sal)?from?emp?where?sal>1200?group?by?deptno?having?sum(sal)>8500?order?by?deptno;

當(dāng)在gropu?by?子句中使用having?子句時(shí),查詢結(jié)果中只返回滿足having條件的組。在一個(gè)sql語句中可以有where子句和having子句。having?與where?子句類似,均用于設(shè)置限定條件

where?子句的作用是在對查詢結(jié)果進(jìn)行分組前,將不符合where條件的行去掉,即在分組之前過濾數(shù)據(jù),條件中不能包含聚合函數(shù),使用where條件顯示特定的行。

having子句的作用是篩選滿足條件的組,即在分組之后過濾數(shù)據(jù),條件中經(jīng)常包含聚合函數(shù),使用having?條件顯示特定的組,也可以使用多個(gè)分組標(biāo)準(zhǔn)進(jìn)行分組。

查詢每個(gè)部門的每種職位的雇員數(shù)

select?deptno,job,count(*)?from?emp?group?by?deptno,job

在使用group?by?時(shí),有一個(gè)規(guī)則需要遵守,即出現(xiàn)在select列表中的字段,如果沒有在組函數(shù)中,那么必須出現(xiàn)在group?by?子句中。select中的字段不可以單獨(dú)出現(xiàn),必須出現(xiàn)在group語句中或者在組函數(shù)中

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容