Having是筛选组,where是筛选记录。可以这样理解:Having是先分组在进行筛选,而where是先筛选再进行分组。对于有Group by子句的SQL语句,切记与Having组合使用。但不一定要有Having子句。一般情况下分组筛选的时候用Having,其他情况下用where。select class_num,count(*) from student where score>=85 group by class_num having count(*)>1查询有多个学生的成绩大于等于85分班级编号。(也就是说如果一个班级的学生成绩大于85那么他就查询出来)。where针对每一条记录进行筛选,而Having对班级的分组,count(*)>1计算多于两个的班级。