MySQL數(shù)據(jù)庫(kù):第六章:分組函數(shù)/聚合函數(shù)
回退至Mysql數(shù)據(jù)庫(kù)理論與實(shí)戰(zhàn)
#進(jìn)階5:分組函數(shù)/聚合函數(shù)
本質(zhì)上就是一種函數(shù),調(diào)用語(yǔ)法:select 函數(shù)名(實(shí)參列表);
函數(shù):
單行函數(shù)(常見函數(shù)):有幾行,最終有幾個(gè)結(jié)果
分組函數(shù)(聚合函數(shù)):一組中有多行,但最終一個(gè)結(jié)果,一般用作統(tǒng)計(jì)
分組函數(shù):
sum(參數(shù)):求和
avg(參數(shù)):平均
max(參數(shù)):求最大值
min(參數(shù)):求最小值
count(參數(shù)):統(tǒng)計(jì)個(gè)數(shù)
#1.簡(jiǎn)單的使用
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值?
五個(gè)分組函數(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)計(jì)
count(distinct 字段名)
SELECT COUNT(department_id) FROM employees;
#案例:?jiǎn)T工涉及到了幾個(gè)部門
SELECT COUNT(DISTINCT department_id) FROM employees;
#5.count的實(shí)參形式
SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;
#6.添加篩選條件
SELECT COUNT(*) FROM employees WHERE department_id = 30;
#7.不是所有的字段都能和分組函數(shù)一同查詢出來(lái)的
SELECT COUNT(*) ,employee_id FROM employees;