回覆列表
  • 1 # 待花開北島嶼南涼

    SELECT*

    FROMt_infoa

    WHERE((SELECTCOUNT(*)

    FROMt_info

    WHERETitle=a.Title)>1)

    ORDERBYTitleDESC

    一。查詢重複記錄

    1。查詢全部重複記錄

    Select*From表Where重複欄位In(Select重複欄位From表GroupBy重複欄位HavingCount(*)>1)

    2。過濾重複記錄(只顯示一條)

    Select*FromHZTWhereIDIn(SelectMax(ID)FromHZTGroupByTitle)

    注:此處顯示ID最大一條記錄

    Delete表Where重複欄位In(Select重複欄位From表GroupBy重複欄位HavingCount(*)>1)

    2。保留一條(這個應該是大多數人所需要的^_^)

    DeleteHZTWhereIDNotIn(SelectMax(ID)FromHZTGroupByTitle)

    注:此處保留ID最大一條記錄

    1、查詢表中多餘的重複記錄,重複記錄是根據單個欄位(peopleId)來判斷

    select*frompeople

    wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)

    deletefrompeople

    wherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)

    androwidnotin(selectmin(rowid)frompeoplegroupbypeopleIdhavingcount(peopleId)>1)

    3、查詢表中多餘的重複記錄(多個欄位)

    select*fromvitaea

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

    deletefromvitaea

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

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

    5、查詢表中多餘的重複記錄(多個欄位),不包含rowid最小的記錄

    select*fromvitaea

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

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

    補充:

    有兩個以上的重複記錄,一是完全重複的記錄,也即所有欄位均重複的記錄,二是部分關鍵欄位重複的記錄,比如Name欄位重複,而其他欄位不一定重複或都重複可以忽略。

    1、對於第一種重複,比較容易解決,使用

    selectdistinct*fromtableName

    就可以得到無重複記錄的結果集。

    selectdistinct*into#TmpfromtableName

    droptabletableName

    select*intotableNamefrom#Tmp

    droptable#Tmp

    發生這種重複的原因是表設計不周產生的,增加唯一索引列即可解決。

    2、這類重複問題通常要求保留重複記錄中的第一條記錄,操作方法如下

    假設有重複的欄位為Name,Address,要求得到這兩個欄位唯一的結果集

    selectidentity(int,1,1)asautoID,*into#TmpfromtableName

    selectmin(autoID)asautoIDinto#Tmp2from#TmpgroupbyName,autoID

    select*from#TmpwhereautoIDin(selectautoIDfrom#tmp2)

  • 中秋節和大豐收的關聯?
  • 不超過3500元的入門單反相機,有什麼推薦?