MySQL數(shù)據(jù)庫:第六章:分組函數(shù)/聚合函數(shù)

回退至Mysql數(shù)據(jù)庫理論與實戰(zhàn)
#進階5:分組函數(shù)/聚合函數(shù)

本質(zhì)上就是一種函數(shù),調(diào)用語法:select 函數(shù)名(實參列表);
函數(shù):
單行函數(shù)(常見函數(shù)):有幾行,最終有幾個結(jié)果
分組函數(shù)(聚合函數(shù)):一組中有多行,但最終一個結(jié)果,一般用作統(tǒng)計
分組函數(shù):
sum(參數(shù)):求和
avg(參數(shù)):平均
max(參數(shù)):求最大值
min(參數(shù)):求最小值
count(參數(shù)):統(tǒng)計個數(shù)

#1.簡單的使用

SELECT SUM(salary),AVG(salary),MAX(salary),MIN(salary),COUNT(salary) FROM employees;

#2.參數(shù)支持任意類型?

sum和avg一般用于處理數(shù)值型
count、max、min可以處理任意類型

SELECT SUM(last_name),AVG(last_name),MAX(last_name),MIN(last_name),COUNT(last_name) FROM employees;
SELECT SUM(hiredate),AVG(hiredate),MAX(hiredate),MIN(hiredate),COUNT(hiredate) FROM employees;

#3.是否都忽略null值?

五個分組函數(shù)都忽略null
SELECT SUM(commission_pct),AVG(commission_pct),MAX(commission_pct),MIN(commission_pct),COUNT(commission_pct) FROM employees;
SELECT AVG(commission_pct),SUM(commission_pct)/107,SUM(commission_pct)/35 FROM employees;

#4.去重的統(tǒng)計

 count(distinct 字段名)
    SELECT COUNT(department_id) FROM employees;
    #案例:員工涉及到了幾個部門
    SELECT COUNT(DISTINCT department_id) FROM employees;
    #5.count的實參形式
    SELECT COUNT(*) FROM employees;
    SELECT COUNT(1) FROM employees;
    #6.添加篩選條件
    SELECT COUNT(*)  FROM employees WHERE department_id = 30;
    #7.不是所有的字段都能和分組函數(shù)一同查詢出來的
    SELECT COUNT(*) ,employee_id FROM employees;