WHERE 与 HAVING 区别
create table class_score
(
class_name nvarchar(10),
stu_name nvarchar(10),
score int
);
insert into class_score
values
(N'一班',N'小明',85),
(N'一班',N'小红',55),
(N'一班',N'小刚',90),
(N'二班',N'小丽',78),
(N'二班',N'小亮',60),
(N'三班',N'小华',45);
select
class_name as 班级,
count(*) as 及格人数
from class_score
where score >=60
group by class_name;
select
class_name as 班级,
count() as 及格人数
from class_score
where score >=60
group by class_name
having count() >=2;
——————————————————————————————————————————
WHERE 管人(原始数据),HAVING 管组(统计结果)
行过滤用 WHERE,组过滤用 HAVING
聚合条件写 HAVING,普通条件写 WHERE

浙公网安备 33010602011771号