01. 聚合函数
COUNT, SUM, AVG, MAX, MIN:
sql
-- 统计行数
SELECT COUNT(*) FROM users;
SELECT COUNT(DISTINCT department) FROM employees;
-- 求和
SELECT SUM(amount) FROM orders;
-- 平均值
SELECT AVG(age) FROM users;
-- 最大最小值
SELECT MAX(salary), MIN(salary) FROM employees;
-- 组合使用
SELECT
COUNT(*) AS total_users,
AVG(age) AS avg_age,
MAX(age) AS max_age
FROM users;02. GROUP BY
分组统计:
sql
-- 按部门统计人数
SELECT department, COUNT(*) AS count
FROM employees
GROUP BY department;
-- 按部门统计平均薪资
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
-- 多列分组
SELECT department, job_title, COUNT(*) AS count
FROM employees
GROUP BY department, job_title;
-- HAVING 过滤分组结果
SELECT department, COUNT(*) AS count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
-- HAVING vs WHERE
-- WHERE 在分组前过滤,HAVING 在分组后过滤
SELECT department, AVG(salary) AS avg_salary
FROM employees
WHERE status = 'active'
GROUP BY department
HAVING AVG(salary) > 10000;知识测验
第 1/4 题正确 0
HAVING 和 WHERE 的区别是?
下一节
下一节 子查询