查询中 有一个name字段 有重复的记录,用group by 只要其中一条就可以
select a.id a.name a.age b.name1,b.name2 from a,b where a.id = b.id a.name='111' order by a.age desc
其中 name 有重复的  我想把有两条以上name的 只留一条就可以 不会写sql 因为里面还有别的字段 一用sql就报错  

解决方案 »

  1.   

    select a.id,a.name,a.age,b.name1,b.name2
      from
          (
           select a.id,a.name,a.age,b.name1,b.name2,row_number() over (partitio by name order by name) rn
             from a,b where a.id = b.id a.name='111' 
          ) a
     where rn=1
     order by a.age desc
     试试这个
      

  2.   

    问一下  假如 一个 a 表  有1,2,3 字段   3字段里有很多重复的数据 a,b,c,a,d,f 想过滤掉里面有A的记录 只剩下 a,b,c,d,f  这个sql怎么写 
      

  3.   

    直接用DISTINCT
    select distinct a.id a.name a.age b.name1,b.name2 from a,b where a.id = b.id a.name='111' order by a.age desc
      

  4.   

    只用distinct 或者 或者用一楼的排序