表:
  ttextinfo
字段:
  keyno        char(15),
  fathername   varchar2(40)列举部分值
   keyno               fathername
-----------|------------------------|--------
    001                  张三
    002                  张三
    003                  李四
    004                  魏元
    005                  赵龙
    006                  魏元
    007                  魏元要求查询出父亲姓名完全相同的keyno各位,麻烦写个语句呢。20分,简单又轻松!

解决方案 »

  1.   

    select keyno from 
    (
     select t.*,row_number() over(partition by fathername order by keyno) rn
    from table )
    where rn>1
      

  2.   

    SELECT keyno FROM ttextinfo WHERE fathername IN (SELECT fathername FROM ttextinfo GROUP by fathername HAVING COUNT(1) > 1)
      

  3.   

    select * from 
    (
     select t.*, sum(1) over(partition by fathername) rn
    from table )
    where rn>1
      

  4.   

    select * from ttextinfo a
      where exists(select 1 from ttextinfo
        where fathername=a.fathername
        and keyno<>a.keyno)
      

  5.   

    select keyno,count(*) from ttextinfo group by keyno having count(*) >1;