Select age From tablename Group by age Having Count(age) > 1

解决方案 »

  1.   

    哦,也许我的例子举得不好,这里age不是年龄的意思,只是一个字段而已,AGE取值也可以是负数啊
    我是说,我对表中的记录一无所知,在这种情况下,怎么把某字段重复的记录一起列出来:)
      

  2.   

    试一试:
    Select t1.name, t1.age From tablename t1 Inner Join tablename t2 On t1.age = t2.age And t1.name <> t2.name
      

  3.   

    select * from where age in (Select age From tablename Group by age Having Count(age) > 1 )
      

  4.   

    select * from tableName where age in (Select age From tablename Group by age Having Count(age) > 1 ) 
      

  5.   

    on oracle8i:
    LaoZheng()的sql把所有一样的纪录都列出来
    而下面这条是把该删的都列出来
    select * from tab1 t1 where rowid!=(select max(rowid) from tab1 t2 where t1.age=t2.age) order by t1.name;
      

  6.   

    befresh说的没错,
    可是这是谁问的问题呀,
    自己都不关心
      

  7.   

    laozheng()的sql有一个问题,就是如果age字段如果允许null值,那么就会出现问题
      

  8.   

    to Befresh()
    您的语句是什么意思呢,能讲解一下么:)
      

  9.   

    select name,count(age) from tablename group by name having count(age)>1 
    请试试吧,肯定行
      

  10.   

    同意顶楼的和楼上的,关鍵是HAVING!
      

  11.   

    create view test1 as
      select age from test group by age having count(age)>1
    goselect * from test INNER JOIN test1 ON test.age=test1.age
    drop view test1
      

  12.   

    SELECT name,age,COUNT(age) AS C FORM a
          GROUP BY age,name HAVING C>=2  INTO #c1
    SELECT name,age FORM C1
    GO
      or
    CREATE VIEW a_view AS SELECT name,age FROM a
    SELECT age ,COUNT(age) AS C FROM a
          GROUP BY age  HAVING C>=2
    SELECT * FROM a_view
    GO
      

  13.   

    select name , age
    from a 
    where age in (select age from a group by age having count(age)>1)
      

  14.   

    to hughie(雨神):
       你的SQL 語句太棒了,有机會我向你請教。我的E-mail是[email protected] 我的Yahoo ID是Nipsanchow
      

  15.   

    select * from a
    where age=8
    group by age
    having count(age)>1Good luck!!!!
      

  16.   

    select * from a
    where age=8
    group by age
      

  17.   


    很簡單!select * from employee a 
      where ( select count(*) from employee b where b.age=a.age ) > 1未經証實﹐不過我想肯定是這樣﹐因為我以前是想得到前几記錄﹐如得到最近的十次交貨時間。
      

  18.   

    select * from tablename a where (select count(*) from tablename b
     where a.name=b.name )>1 and (select count(*) from tablename b 
       where a.age=b.age )>1 )试试看——