(以上函数均可)
SELECT SUM(DISTINCT salary) AS 和,AVG(DISTINCT salary) AS 平均,COUNT( DISTINCT salary) AS 去重数量,COUNT(salary) AS 不去重数量
FROM employees;
#相当于统计行数方式一
SELECT COUNT(*)
FROM employees;
#相当于统计行数方式二,其中1可以用其他常量或字段替换
SELECT COUNT(1)
FROM employees;
效率问题:
MYISAM存储引擎下,COUNT(*)
的效率高
INNODB存储引擎下,COUNT(*)
和COUNT(1)
的效率差不多,比COUNT(字段)
高
因此一般用COUNT(*)
统计行数
#其中[]内为可选
SELECT 分组函数,列表(要求出现在 GROUP BY 的后面)
FROM 表
[WHERE 筛选条件]
GROUP BY 分组列表
[ORDER BY 子句]
示例:
#查询每个工种的最高工资<