日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化

發布時間:2024/9/27 编程问答 31 豆豆


1組函數 avg(),sum(),max(),min(),count()案例:

selectavg(sal),sum(sal),max(sal),min(sal),count(sal)

from emp

/

截圖:

2 組函數和null在一起

案例:求員工的平均獎金

錯誤sql:

select avg(comm) 方式1,sum(comm)/count(comm)方式2,sum(comm)/count(*) 方式3

from emp;

截圖:

錯誤原因:

select count(comm),count(*) from emp;

分析:

--組函數自動濾空,組函數忽略空值

--修正函數的濾空

select count(nvl(comm,0)),count(*) fromemp;

3.分組數據

A? 求各個部門的平均工資

思路:需要把各個部門的數據劃分….10部門 20部門 30部門….分組……

select deptno,avg(sal)

from emp

group by deptno;

運行結果:

B? 組函數設計的本意

(1)select檢索的列 必須要位于group by后面的集合列中

(2)、組函數設計的本意:必須要在分組數據之上,進行結果集的檢索….

注意:group by子句要求:所有在select中出現的列,都必須在出現group by分組子句中。

select a, b, c

from emp

group by a, b, c,d; 這種格式是對的,因為在select后的abc都在groub by后面。

?

select a, b, f

??from emp

??group by a, b, c,d;? 這種格式是錯的,因為在select后的f不在group

4 GROUP BY子句中包含多個列

--按部門? 不同的職位 統計平均工資

--先按照部門分組,在按照job分組,如果deptnojob一樣,就是同一組,然后求平均工資。

?

--求各個部門的,每一個工種的平均工資

select deptno,job,avg(sal),count(deptno)

from emp

group by deptno,job

order by 1;

截圖:

5 分組過濾

--查詢各個部門的平均工資

--進一步,查詢平均工資大于2000的部門

select deptno,avg(sal)

from emp

group by deptno

having avg(sal) > 2000;

6 havingwhere子句區別

10號部門的平均工資

方法1:先分組,在過濾

select deptno,avg(sal)

from emp

group by deptno

having deptno=10;

方法2:先過濾再分組

select deptno,avg(sal)

from emp

where deptno = 10

group by deptno;

7 關于sql優化

select * from emp;

select deptno, ename, ...,? from emp?把要顯示的所有的列都寫出來,速度快,,不需要"翻譯"

?

select *form emp

where (deptno = 10) and (deptno = 20) and (deptno=30)

?

<---------

oracle解析邏輯表達式 的方向....從右向左

?

總結

以上是生活随笔為你收集整理的6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。