標籤:
組函數針對的是指定欄位的非空值。注意:where子句中不能出現組函數!!!
avg() 平均值(只能針對數值型 )max() 最大值(不限制類型)min() 最小值(不限制類型)count() 計數(針對記錄數目,即行數)stddev() 方差(只能針對數值型)sum() 求和(只能針對數值型) 前提:person表
id namedept_idsalarymanager_id
0001wangda101 8500[NULL]
0002wanger1033 000 0009
0003wangsan102 4000 0006
0004wangsi104 2000 0005
0005wangwu104 6000 0001
0006wangliu102 7000 0001
0007wangqi105 5000 0008
0008wangba105 5500 0001
0009wangjiu103 6000 0001
0010wangshi104 900 0005
0011wangsy103 5000 0009
0012wangse[NULL]3000[NULL]
group by 排序(可以有一個或者多個欄位)功能:按照部門查詢各部門的平均工資
SELECT
dept_id,
avg(salary)
FROM
person
GROUP BY
dept_id;
結果:
dept_idavg(salary)
[NULL]3000.000000
101 8500.000000
102 5500.000000
103 4666.666667
104 2966.666667
105 5250.000000
HAVING 在查詢條件中含有組函數時,用來替代WHERE(注意:在mysql中,having只能放在group by的後面!)功能:查詢部門平均工資高於5000的部門名稱(dept表)、部門平均工資(person表,組函數)
SELECT
p.dept_id,
dept_name,
avg(salary)
FROM
person p,dept d
where p.dept_id = d.dept_id
GROUP BY
p.dept_id
HAVING
avg(salary)>5000;
結果:
dept_iddept_nameavg(salary)
101 zongwu 8500.000000
102 zhenggong5500.000000
105 renshi 5250.000000
mysql分組函數