请教SQL查询符合条件的重复记录的方法。例如有数据表有数据列N列假设为A1、A2、A3、A4、....An,有2万条记录,如果以“A2 and A3 and A4”三列为复合条件,那么数据表中的记录大部分“A2 and A3 and A4”是唯一的,有一些以“A2 and A3 and A4”为条件会有2条2条以上的记录。那么如何用SQL语句筛选出全部“A2 and A3 and A4”为条件的有重复的记录?

解决方案 »

  1.   

    select aA2, A3 , A4,count(*)重复数 from 表 where group by aA2, A3 , A4 having count(*)>1
      

  2.   

    select aA2, A3 , A4,count(*)重复数 from 表 group by aA2, A3 , A4 having count(*)>1
    --sorry多了where
      

  3.   

    楼主朋友按照你的说法,举个简单的实现方法,这个方法直接引用数据列A1,A2....An:
    select A1,A5,A6,...,An
    from
       表A
    where
       A2 and A3 and A4
    group by
       A1,A5,A6,...,An
    having count(A1)>1这样就会选出重复记录的数据了,在group by子句中,包含在select子句中的被聚合函数包含的列不要写进来.你试试看这个方法行不行.
      

  4.   

    select * from 表A a where exists 
    (select 0 from 表A b where a.A2=b.A2 and a.A3=b.A3 and a.A4=b.A4 group by b.A2,b.A3,b.A4 having count(*)>1)
      

  5.   

    筛选出全部“A2 and A3 and A4”为条件的有重复的记录?
    -->>
    select * from 表 group by aA2, A3 , A4 having count(*)>1 
      

  6.   

    太谢谢了,这么快有有这么多回答的呀。
    先试试re: HEROWANG
    select * from 表 group by aA2, A3 , A4 having count(*)>1试验了,提示错误:“在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。”
      

  7.   

    提示 group by 附近语法错误