having
having 对查询结果进行再次过滤
select id,name,age-trueage as `成熟`from table01 having `成熟`>2;
相当于
select id,name,age-trueage as `成熟`from table01 where age-trueage>2;
使用案例:
查询挂科成绩大于或等于2科同学成绩的平均分,数据库成绩表( cj )如下:
name | km | fs |
张三 | 数学 | 90 |
张三 | 语文 | 50 |
张三 | 地理 | 40 |
李四 | 语文 | 55 |
李四 | 政治 | 45 |
王五 | 政治 | 30 |
select name,avg(fs) as pj,sum(fs<60) as gk from cj group by name having gk>=2;
-- 结果:
/*
+------+---------+------+
| name | pj | gk |
+------+---------+------+
| 张三 | 60.0000 | 2 |
| 李四 | 50.0000 | 2 |
+------+---------+------+
2 rows in set (0.00 sec)
*/
注意:1、不要使用count
2、 fs<60 结果为0 或1