五、sql基礎:group by分組--【Oracle數據庫】

五、分組計算函數和group by子句

1.分組計算函數

分組計算函數,相對於單行函數,也可以稱之爲多行函數,它的輸入是多個行構成的一個行集(這個行集可以使一張表的所有行,也可以是按照某個維度進行分組後的某一組行),而輸出都是一個值。


2.分組計算函數(常用)

求和 sum
求平均值 avg
計數 count
求最大值 max
求最小值 min


3.分組計算函數實戰

計算job_id中包含‘REP’的人的薪水的總和、平均值、數量、最大值、最小值
這裏寫圖片描述


4.計數函數:count

count(*) 返回滿足選擇條件的所有行數,包括值爲空的行和重複的行
count(列名) 返回那一列中不爲空的行數
count(distinct 列名) 返回那一列中不爲空、不重複的行數
count(*)和count(1)的結果是一樣的


5.group by 分組
5.1根據一個字段進行分組

實戰:按照 部門department_id 分組,計算平均薪水:
這裏寫圖片描述

5.2根據多個字段進行分組

實戰:按照 部門department_id 、job_id分組,計算平均薪水:
這裏寫圖片描述


6.Having

當我已經按照5.1的方式查出部門的平均薪資,我想繼續查平均薪資大於5000的部門,此時如果把avg(salary)>5000寫在where子句中是不對的,應該把where換成having
這裏寫圖片描述


7.分組函數嵌套使用

按照5.1查出部門平均薪資,查看平均薪資的最大值
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章