having 和where 都是用来筛选用的 having 是筛选组 而where是筛选记录 他们有各自的区别 1》当分组筛选的时候 用having 2》其它情况用where ----------------------------------------------------- 用having就一定要和group by连用, 用group by不一有having (它只是一个筛选条件用的) ------------------------------------------------------- 例子 表结构 部门编号 姓名 工资 1 aa 2000 2 bb 1200 1 cc 2100 2 dd 1800 1 ee 2100 3 ff 8000 2 gg 2200 3 hh 4500 查询有多个员工的工资不低于2000的部门编号 (就是说如果一个部门的员工大于2000的人数有两个或两个以上就查询出来) select 部门编号,count(*) from 员工信息表 where 工资>=2000 group by 部门编号 having count(*)>1 where 针对每一条记录筛选 而 having 对同一个部门的分组 count(*)>1 计算多于两个的部门 查询结果为 1 3 3 2