MySQL的常用聚合函数


聚合函数作用于一组数据,并对一组数据返回一个值。MySQL中常用的聚合函数有,

  1. AVG()
  2. SUM()
  3. MAX()
  4. MIN()
  5. COUNT()

AVG()和SUM()

SELECT AVG(salary),SUM(salary),SUM(salary)/107 
FROM employees;-- 返回6461.682243 691400.00 6461.682243

MAX()和MIN()

SELECT MAX(salary),MIN(salary)
FROM employees; -- 返回24000.00	2100.00

COUNT()

COUNT(),计算指定字段在查询结构中出现的次数。

SELECT COUNT(employee_id),COUNT(salary),COUNT(2*salary),COUNT(1),COUNT(2),COUNT(*)
FROM employees;  -- 返回107 107 107 107 107 107

查询数据表中有多少行记录,可以使用以下任意方式:

  1. COUNT(*),如SELECT COUNT(*) FROM employees;
  2. COUNT(1),如SELECT COUNT(1) FROM employees;
  3. COUNT(具体字段),如SELECT COUNT(employee_id) FROM employees;
    注意,如果字段值为空,则不会被计算在内

以上三种方式的执行效率也存储引擎有关。
如果使用的存储引擎是MyISAM,则三者执行效率相同。
如果使用的存储引擎是InnoDB,则三者执行效率不同,COUNT(*)=COUNT(1)>COUNT(具体字段)

# 使用COUNT()计算指定字段出现的次数时,是不计算空值的。
SELECT COUNT(commission_pct)
FROM employees; -- 返回35

SELECT commission_pct
FROM employees
WHERE commission_pct IS NOT NULL; -- 返回35行记录
# AVG = SUM / COUNT
SELECT AVG(salary),SUM(salary)/COUNT(salary)
FROM employees; -- 返回 6461.682243	6461.682243

SELECT AVG(commission_pct),SUM(commission_pct)/COUNT(commission_pct),SUM(commission_pct)/COUNT(*)
FROM employees; -- 返回 0.222857	0.222857	0.072897

猜你喜欢

转载自blog.csdn.net/qzw752890913/article/details/126349778