91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle分組函數

發布時間:2020-06-11 20:44:04 來源:網絡 閱讀:486 作者:宋姣 欄目:關系型數據庫

分組函數:作用于一組值,并對一組數據返回一個值;

分組函數的使用:

常用的分組函數:

Avg(求平均值),sum(求總和),min(求最小值),max(求最大值),count(求總個數),wm_concat(行轉列)

select count( distinct deptno) from emp ;

行轉列: select deptno 部門號,wm_concat(ename) 部門中員工的名字  from emp group by deptno;

----------------------------------------------------

分組函數與空值:(分組函數會自動忽略空值)

1.      統計員工的平均工資

Select sum(sal)/count(*) 一,sum(sal)/count(sal) 二,avg(sal) from emp;

 

2.      統計員工的平均獎金

Select sum(comm)/count(*),  sum(comm)/count(comm) 二,avg(comm) from emp;

 

注意:nvl函數使分組函數無法忽略空值

Selectsum(comm)/count(*),   sum(comm)/count(nvl(comm,0)) from emp;

Comm為空時,nvl函數返回0,0不為null,所以count不會忽略

------------------------------------------------------

Group by子句的使用

1.求部門號和部門的平均工資

Selectdeptno,avg(sal) from emp

Group bydeptno;

 抽象:

Selecta,b,c,avg(x) from table

Group bya,b,c;

規定:select列表中所有未包含在組函數中的列都應該包含在group by 子句中;

相反的,在group by 中的列,不必包含在組函數中

 

多個列的分組:(分組邏輯:先按照group by 后面第一個列分組,如果第一個列相同,再按照第二個列分組,如果所有的列都相同,那么這就是同一組中的數據)

按照部門,不同的職位,統計員工工資的總額

Select deptno,job ,sum(sal) from emp

Group by deptno,job;



-------------------------------------------------------

Having子句的使用:(過濾分組后的數據)

平均工資大于2000的部門

Select deptno,avg(sal)

From emp

Having  avg(sql)>2000;

 

Wherehaving的區別:

where子句后面不能使用分組函數

 

Wherehaving可以通用的情況(沒有分組函數的情況下可以通用,但是從

Sql優化的角度上考慮,盡量使用where)

查詢10號部門的平均工資

1.      Where

Select deptno,avg(sal) from emp wheredeptno=10 group by deptno

 

2.      Having

Select deptno,avg(sal) from empgroup by deptno having deptno=10

-----------------------------------------------------------------------------

在分組函數中使用orderby 排序(默認是asc升序)

1.Select deptno ,avg(sal)

From emp

Group by deptno

Order by avg(sal)

2.

Select deptno ,avg(sal)

From emp

Group by deptno

Order by 2—這里的2代表select語句后面的第二列,這里即avg(sal)

----------------------------------------------------------------------------

分組函數的嵌套

Select  max(avg(sal))

From emp

Group by deptno;

-----------------------------------------------------------------------

Group by 語句的增強:

(1)Selext deptno,job,sum(sal)

From emp

Group by deptno,job

 

(2)Select deptno,sum(sal)

From emp

Having deptno

 

(3)Select sum(sal) from emp

 等價于(1+2+3

Select deptno,job,sum(sal) from emp group byrollup(deptno,job);

語法:

Group by rollup(a,b)

等價于:groupby a,b+group by  a+group by null

 

Break on deptno skip 2;--相同的部門號只顯示一次,不同的部門號之間

跳過兩行

--詳細的可以看看sql-plus的報表功能

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吴桥县| 淄博市| 上林县| 和林格尔县| 镇平县| 莱芜市| 介休市| 灵寿县| 广南县| 白玉县| 安阳县| 万全县| 奎屯市| 五家渠市| 酒泉市| 台南县| 武穴市| 玉田县| 浏阳市| 都兰县| 林甸县| 德昌县| 女性| 远安县| 扎赉特旗| 应城市| 泸定县| 拉孜县| 香港| 民县| 铜山县| 绥棱县| 油尖旺区| 禄丰县| 马尔康县| 那坡县| 乌拉特后旗| 孝昌县| 余江县| 安塞县| 乌兰浩特市|