如何查找数据库中的重复数据?

如何查找数据库中的重复数据?,第1张

实现方式如下:

  Dim cnn As Object, rs As Object, SQL$, i&, s$

    Set cnn = CreateObject("ADODB.Connection")

    cnn.Open "Provider=Microsoft.Jet.Oledb.4.0data Source=" & ThisWorkbook.Path & "\排课数据.mdb"

    SQL = "Select 星期&节&班级,count(星期&节&班级) from 排课 where 星期 is not null group by 星期&节&班级 having count(星期&节&班级)>1"

    Set rs = CreateObject("ADODB.Recordset")

    rs.Open SQL, cnn, 1, 3

    If rs.RecordCount Then

        For i = 1 To rs.RecordCount

            s = s & vbCrLf & "星期" & rs.Fields(0) & "班,重复次数:" & rs.Fields(1)

            rs.MoveNext

        Next

        MsgBox "有" & rs.RecordCount & "条记录重复:" & s

    Else

        MsgBox "没有发现重复记录"

    End If

    rs.Close

    cnn.Close

    Set rs = Nothing

    Set cnn = Nothing

End Sub

1。删除全部重复记录(慎用) 

Delete表Where重复字段In(Select重复字段From表GroupBy重复字段HavingCount(*)>1)

2。保留一条(这个应该是大多数人所需要的^_^)

DeleteHZTWhereIDNotIn(SelectMax(ID)FromHZTGroupByTitle)

注:此处保留ID最大一条记录

3、查找表中多余的重复记录(多个字段) 

select*fromvitaea

where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

deletefromvitaea

where(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)

androwidnotin(selectmin(rowid)fromvitaegroupbypeopleId,seqhavingcount(*)>1)

上传文档,与网站已文档相似时系统就会提示。百度文库判断文档是否重复,主要还是通过系统自动检测的,上传文档后,系统会自动阅读【检测】文档内容,并且与数据库中的现有文档进行对比,当相似度的达到一定程度以后,就会判定为重复。

以下公式可以统计姓名及MD5都相同的个数(假设数据分别在A2~A100及B2~B100,D2输入以下公式):

=COUNTIFS(A$2:A$100,A2,B$2:B$100,B2)

拖着D2右下角往下复制公式即可.

在E2再输入以下公式可计算MD5相同的个数:

=COUNTIF( B$2:B$100,B2)

不是很明白你要的结果,可以根据上述D,E列的数据再进一步处理,例如F2输入:

=if(D2=E2,"是","")

此结果的含义是:如果MD5相同但姓名有多个就显示"是",否则不显示.

再筛选F2列即可.

当然也可以将上述三个公式合并:

=if(COUNTIFS(A$2:A$100,A2,B$2:B$100,B2)=COUNTIF( B$2:B$100,B2),"是","")


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6847701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存