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

posted @ 2026-04-27 23:20  菜鸟的奋斗军  阅读(7)  评论(0)    收藏  举报