MySQL---筛选

--分组筛选
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是筛选记录

猜你喜欢

转载自www.cnblogs.com/cxiaojie/p/12738235.html