MySQL中的组函数(聚合函数)
MySQL中的組函數(聚合函數)
組函數操作行集,給出每組的結果。組函數不象單行函數,組函數對行的集合進行操
作,對每組給出一個結果。這些集合可能是整個表或者是表分成的組。
一、組函數與單行函數的區別
?單行函數對查詢到每個結果集做處理,而組函數只對分組數據做處理。
?單行函數對每個結果集返回一個結果,而組函數對每個分組返回一個結果。
二、組函數的類型
?AVG 平均值
?COUNT 計數
?MAX 最大值
?MIN 最小值
?SUM 合計
三、使用組函數的原則
?用于函數的參數的數據類型可以是 CHAR、VARCHAR2、NUMBER 或 DATE。
?所有組函數忽略空值。為了用一個值代替空值,用 NVL、NVL2 或 COALESCE 函數。
四、組函數的使用
?使用 AVG 和 SUM 函數
AVG(arg)函數:對分組數據做平均值運算。arg:參數類型只能是數字類型。
SUM(arg)函數:對分組數據求和。arg:參數類型只能是數字類型。
例
求雇員表中的的平均薪水與薪水總額。
?使用 MIN 和 MAX 函數
MIN(arg)函數:求分組中最小數據。arg:參數類型可以是字符、數字、日期。
MAX(arg)函數:求分組中最大數據。arg:參數類型可以是字符、數字、日期。
例
求雇員表中的最高薪水與最低薪水。
?使用 COUNT 函數
COUNT 函數:返回一個表中的行數。
COUNT 函數有三種格式:COUNT(*)、COUNT(expr)、COUNT(DISTINCT expr);
1.COUNT(*)
返回表中滿足 SELECT 語句標準的行數,包括重復行,包括有空值列的行。 如果WHERE 子句包括在 SELECT 語句中,COUNT(*) 返回滿足 WHERE 子句條件的行數。
例
返回查詢結果的總條數。
2.COUNT(expr)
返回在列中的由 expr 指定的非空值的數。
例
顯示有傭金的雇員人數。
3.COUNT(DISTINCT expr)
使用 DISTINCT 關鍵字禁止計算在一列中的重復值。
例
顯示 EMPLOYEES 表中不重復的部門數。
五、組函數與空值
?所有組函數忽略列中的空值。
?在組函數中使用 ifnull 函數來處理空值。
例
一、計算有傭金的員工的傭金平均值。
Select avg(commission_pct) from employees;二、計算所有員工的傭金的平均值。
Select avg(ifnull(commission_pct,0)) from employees;總結
以上是生活随笔為你收集整理的MySQL中的组函数(聚合函数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL99标准中的查询(MySQL)
- 下一篇: MySQL中的数据分组