--分组筛选
SELECT COUNT(StudentName)as 人数 ,sGrade as 年级
FROM S2
WHERE StudentNo>5
--WHERE Address like ‘%上海%‘
GROUP BY SGrade
HAVING COUNT(StudentNo)>1|
WHERE和HAVING的区别
1.Where语句是一条一条从磁盘读取的, 然后进行判断,满足条件的存放到内存,不满足忽略,而having是将所有的数据读入内存中,然后在内存内部逐条判断,不满足直接删除(where是判断数据从磁盘读入内存的时候,having是判断分组统计之前的所有条件)
2.having子句中可以使用字段别名,而where不能使用
3.having能够使用统计函数,但是where不能使用
4.where 后不能跟聚合函数,因为where执行顺序大于聚合函数。
5.having 是筛选组 而where是筛选记录