本篇文章是修订版,旧文存在一点问题
上一章阿常给大家讲了MySQL 分组函数,今天我们讲 MySQL HAVING 子句。
HAVING 子句用来筛选分组后的各组数据。
一、HAVING 语法
SELECT 列名, 聚合函数(列名)
FROM 表名
WHERE 条件表达式
GROUP BY 列表
HAVING 聚合函数(列名) operator value;
二、数据库实例
数据库有如下 score 表:
数据库还有如下 student 表:
一)不加 WHERE 子句
统计总成绩大于 200分的学生记录:
SELECT student_id,sum(score.score) as total_score
FROM score INNER JOIN student
ON score.student_id=student.ID
GROUP BY student_id
HAVING sum(score.score)> 200;
执行以上 SQL 语句,可得到如下结果集:
二)加 WHERE 子句
统计总成绩大于 200分、并且国籍是中国的学生记录:
SELECT student_id,sum(score.score) as total_score
FROM score INNER JOIN student
ON score.student_id=student.ID
WHERE score.country = 'CN'
GROUP BY student_id
HAVING sum(score.score)> 200;
执行以上 SQL 语句,可得到如下结果集:
到此,《MySQL HAVING子句》就讲完啦,下节课阿常讲《MySQL ROUND()函数》。
看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一起探讨交流。