group by having分组筛选

create table TestClassInfo(
 id int identity(1,1) primary key not null,
 UserNo int not null,
 UserName nvarchar(50) not null,
 ClassType nvarchar(10) not null,
 Score float default(0) not null
)
go
insert into TestClassInfo (UserNo,UserName,ClassType,Score)
values
(1,'张三','语文',50),(2,'李四','语文',80),(3,'王五','语文',90),
(1,'张三','数学',99),(2,'李四','数学',97),(3,'王五','数学',70),
(1,'张三','英语',80),(2,'李四','英语',98),(3,'王五','英语',60)
go

--查询各科成绩最高和最低的同学
select b.* from (select ClassType,MAX(Score) as MaxScore,min(Score) as MinScore from TestClassInfo group by ClassType) a,TestClassInfo b
where b.ClassType = a.ClassType and b.Score in (a.MaxScore,a.MinScore)
--查询语文单科成绩最高和最低的同学,在group by 后添加having筛选
select b.* from (select ClassType,MAX(Score) as MaxScore,min(Score) as MinScore from TestClassInfo group by ClassType having ClassType = '语文') a,TestClassInfo b
where b.ClassType = a.ClassType and b.Score in (a.MaxScore,a.MinScore)

--drop table TestClassInfo

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值