一张表有几个字段id,name,XX,XX。里面有10000条数据,怎么查出名字相同的人的姓名来?

解决方案 »

  1.   

    select name from table_name
    group by name
    having count(*)>1;
      

  2.   

    select distinct name from tbl a where exists(select 1 from tbl b where a.name=b.name and a.rowid<>b.rowid);
      

  3.   

    select name from table_name 
    group by name
    这样不就可以了吗? 为什么还用having
      

  4.   

    如果不加having,会把全部名字都查出来。count(1)>1代表该分组的记录数大于1
    在select 后也加上一个count(1)来表示重复数更直观
      

  5.   

    select name from table_name 
    group by name 
    having count(*)>1;up
      

  6.   

    select name from table_name 
    group by name 
    having count(*)>1;
      

  7.   

    感觉楼主的问题有点怪。要是只要得到姓名就直接就是select dinstinct(name) from table_name.这样就可以了,这里又没有做统计。select dinstinct(name),count(name) from table_name group by name这样就是某个姓名对应有好多相同的。
      

  8.   

    select * from 一张表 a
    where exists (select 1 from 一张表 where name=a.name and id!=a.id);
      

  9.   

    having子句是过滤掉那些没重复的名字