距離上一篇時間隔得蠻久了,這篇繼續查詢,簡單總結一下聚合函數、分組的知識。
一、聚合函數(組函數/多行函數)
何謂多行函數,顧名思義就是函數作用於多行數據得出一個輸出結果,什麼意思呢?看圖:
那麼常用的有哪些這樣的函數呢?
AVG(平均值)
SUM(合計)
COUNT(計數)
MAX(最大值)
MIN(最小值)
STDDEV(標准差)
組函數使用的語法,用法很簡單,但有兩點要注意:
I. 函數參數類型
II. 有關空值的處理
III. 不能在WHERE子句中使用組函數,這點結合後面的HAVING子句解釋。
IV. 組函數可以嵌套使用
二、數據分組
GROUP BY子句,分組數據
意思咱就不廢話了,用的時候注意兩點:
有點暈,什麼意思呢?我來解釋一下,判斷一個sql語句是否合法其實可以試著去理解你要寫的sql語句要表達的實際想法,例如:
如上語句,我想要表達的意思是:從雇員這張表中求出不同部門和不同工種的人的平均工資,輸出的格式是按照SELECT語句列表。那麼如果我從SELECT列表中隨便刪掉一個字段,改變的只是我輸出的格式,我還是按部門和工種進行分類了;但是如果只從GROUP
BY子句中刪掉job_id,則語句表達的意思就不能成立了,我按部門進行分組,但是部門中有很多個工種,結果到底要怎樣對應不得而知。
HAVING子句,過濾分組