常用聚合函数
| 函数 | 说明 |
|---|---|
AVG(列) |
平均值 |
SUM(列) |
求和 |
MAX(列) |
最大值 |
MIN(列) |
最小值 |
COUNT(列) |
计数(不计算 NULL 值) |
分组查询
GROUP BY(列名) -- 按列分组
GROUP BY(列名) WITH ROLLUP -- 最后计算总数(不能与 ORDER BY 同时使用)
示例
查询部门 ID 为 10/20/30/40 中最高工资超过 10000 的部门:
-- 方式一(推荐,效率更高)
SELECT department_id, MAX(salary)
FROM employees
WHERE department_id IN (10, 20, 30, 40)
GROUP BY department_id
HAVING MAX(salary) > 10000;
-- 方式二
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000
AND department_id IN (10, 20, 30, 40);
注意:
- 出现聚合函数时要用
HAVING代替WHEREHAVING不能单独出现,必须和GROUP BY一起使用