五、分組計算函數和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查出部門平均薪資,查看平均薪資的最大值