求如何取出某字段最大的记录??

t200021 2011-08-03 11:28:28
TEST表数据为:
id name age
----------------------
1 A 18
2 B 19
3 B 22
4 C 21
现需要用SQL取出name相同的条件下age最大的记录,还要有其他ID的记录。

需要的结果如下:
id name age
----------------------
1 A 18
3 B 22
4 C 21

请问如何写语句呢??

...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutebear2008 2011-08-03
  • 打赏
  • 举报
回复
哥表示不是很理解你的话:‘还要有其他ID的记录’,还要什么???
按照你的结果看,sql语句不是很简单!
[Quote=引用楼主 t200021 的回复:]
TEST表数据为:
id name age
----------------------
1 A 18
2 B 19
3 B 22
4 C 21
现需要用SQL取出name相同的条件下age最大的记录,还要有其他ID的记录。

需要的结果如下:
id name age
----------------------
1 A 18
3 B 22
4 C 21

请问如何……
[/Quote]
cutebear2008 2011-08-03
  • 打赏
  • 举报
回复


select id,name,max(age) from tb group by name
cjh18168 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ssp2009 的回复:]
SQL code

select * from tb a
where age=(select max(age) from tb where name=a.name)
[/Quote]

支持。。
ricleon 2011-08-03
  • 打赏
  • 举报
回复
select * from tb where id in(select id from tb , (select name ,max(age) as age from tb group by name)aa
where tb.name=aa.name and tb.age=aa.age)


试试行不
--小F-- 2011-08-03
  • 打赏
  • 举报
回复
select * from tb t where age=(select max(age) from tb where name=t.name)


select * from tb t where not exists(select 1 from tb where name=t.name and age>t.age)
AcHerat 元老 2011-08-03
  • 打赏
  • 举报
回复

select *
from tb t
where id = (select top 1 id from tb where name = t.name order by age desc)
快溜 2011-08-03
  • 打赏
  • 举报
回复
select * from tb a
where age=(select max(age) from tb where name=a.name)

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧