找出一个表中具有相同name的最高分数学生的纪录

本文介绍了一种使用SQL查询来找出表中具有相同ID记录的最大AGE值的方法,并提供了两种不同的实现方式。

有表A:

ID ,NAME ,source,BirthDay

1      ivan        100   1898-08-10

1      ivan        99      1899-08-10

2    ivan1        10     1998-08-10

2      ivan 1       11    1997-08-10

如果想找出相同id 的最大AGE值,如何实现?

Create table a (id integer ,name varchar(20),source integer,birthday datetime)

go

insert into (id,name,source,birthday)

select 1,'ivan',100,'1898-08-10'

union all select 1,'ivan',99,'1899-08-10'

union all select 2,    'ivan1',        10 ,    '1998-08-10'

union all select 2,'ivan1',11,'1997-08-10'

go

--实现上面的要求,可以用一句sql 实现

select * from a where exists(select 1 from a as b where b.id=a.id and a.source>b.source)

--方法二:

select a.name,max(a.source),(select b.birthday from a as b where a.name=b.name and b.source=max(a.source))  from a group by name

go

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值