我的一个表table中有A,B,C,D四个字段,我想要用A,B,C做联合主键,可是提醒我有重复数据。请问,我应该怎么检索出来这三个字段的组合的重复数据?
比如说:A      B      C 
        1      2      3
        1      2      5
        1      2      3
第一条和第二条不算重复数据,第一条和第三条才算重复数据。请问应该怎么检索?

解决方案 »

  1.   

    select * from ( select a,b,c ,count(*) from t group by a,b,c having count(*)>1 ) t1
      

  2.   

    分组求count,然后对于count>1的记录输出。
      

  3.   

    正解
    要删除重复数据可以在此基础上利用rowid属性。
      

  4.   


    select * from (select rowid, count(1) over(partition by a, b, c) rn from t) where rn > 1;
      

  5.   

    利用rowid
    select * from t a where a.rowid=(select max(rowid) from t b where a.a=b.a
    a.b=b.b and a.c=b.c)