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请问如何写语句呢??  

解决方案 »

  1.   

    select * from tb a
     where age=(select max(age) from tb where name=a.name)
      

  2.   


    select *
    from tb t
    where id = (select top 1 id from tb where name = t.name order by age desc)
      

  3.   

    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)
      

  4.   

    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)试试行不
      

  5.   

    select id,name,max(age) from tb group by name
      

  6.   

    哥表示不是很理解你的话:‘还要有其他ID的记录’,还要什么???
    按照你的结果看,sql语句不是很简单!