Oracle學習3

來源:互聯網
上載者:User

標籤:

查詢

1、分組查詢 GROUP BY, HAVING

 

 

2、基本函數

AVG(品均值) avg(column_name)求這一列的品均值

SUM(求和)  sum(column_name)求這一列的總和

MAX(最大值)  max(column_name)求這一列中的最大值

MIN(最小值)  min(colunm_name)求這一列的最小值

COUNT(求總數)  count(*)求總行數,count(column_name)求這一列的總行數,count(distinct column_name)去重求總行數

WM_CONCAT(行轉列)

NVL(column_name,default)  略空函數 當column_name為空白時返回default

 

 

3、group by

(1)查詢部門品均工資:

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

select avg(sal) from emp group by deptno;

在分組查詢group by中,不包含在組函數中的列都要卸載group by子句後面,而包含在group by後的列不必包含在select列表中。

(2)按照部門不同職位來統計員工品均工資:

select deptno,job,avg(sal) from emp group by deptno,job order by deptno;

group by後的列按照先後順序進行分組,即先安裝第一列進行分組再按照第二列進行分組以此類推。

4、having子句

查詢部門品均工資大於2000的部門:

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

where和having的區別:

1、在where子句中不能使用avg、sum等組函數,而having子句中可以使用。

2、where是先過濾後分組,having是先分組後過濾。

(從sql最佳化的角度來說:如果where和having都能使用時優先使用where)

 

 

 

5、group by增強

(1)select deptno,job,sum(sal) from emp group by deptno,job;

(2)select deptno,sum(sal) from emp group by deptno;

(3)select sum(sal) from emp;

(4)select deptno,job,sum(sal) from emp group by rollup(deptno,job);

(1)+(2)+(3)=(4)

 

Oracle學習3

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.