select * from aaa 
where name in
 (select name  from aaa group by name having count(*) = 2) 
表aaa就一个name字段   比如aaa中的数据是1,2,3,2,3  运行的结果为2,3,2,3
我现在只想要2,3  怎么改这条语句啊 急!!!!!

解决方案 »

  1.   

    select distinct aaa.* from aaa 
    where name in 
    (select name  from aaa group by name having count(*) = 2) 
      

  2.   

    select * from
    (
    select count(1) over (partition by name) c,
    row_number() over (partition by name order by name ) n,
     aaa.*
    from aaa 
    )
    where c>=2
    and n=1
      

  3.   

    如果只有一个name字段,直接这样不行么?
    select name  from aaa group by name having count(*) = 2
      

  4.   

    select name  from aaa group by name having count(*) = 2
    这样肯定对的哦。我试过了!