表A 里面有 name,id  两列他们的对应关系如下是多对多 ,很混乱
name       id
张三        1
张三        3
张三        2
李四        2
李四        1
王五        1
王五        3
王五        6我现在要用表A里面的name和id  ,张三。李四。王五 各取一组数据出来 ID随便配一个对应的就行

张三,3
李四,2
王五,6
sql语句该如何写,求教了~

解决方案 »

  1.   

    select name,max(id) from a group by name;
    另外楼主的结帖率有点低啊。
      

  2.   

    select name,max(id) from ;
    没有必要用group by name;
      

  3.   

    --如果只有name,id两个字段。
    select name , max(id) id from tb group by name--如果不止name,id两个字段。
    select t.* from tb t where id = (select max(id) from tb where name = t.name)
    select t.* from tb t where not exists (select 1 from tb where name = t.name and id > t.id)
      

  4.   

    最简单就是用GROUP BY了,你有其它好方法?
      

  5.   

    不要 group by
    答案会有重复数据
    如3楼说  再如果id都有重复的 可以试下partition