2019年3月8日 星期五

ACCESS如何移除完全重複的資料

在用python做回測時,發現同樣時間的資料點有兩個,仔細檢查,原來是access的資料表有重複資料。

一般教學是教只有一項重複,但是,因為是用python寫入,結果重複資料全部欄位皆相同。

每次用access都有一種水土不服的感覺,明明就是用python或sql很好理解的解法,但是access的使用者介面卻讓自己用不出來。

如何移除完全重複並只保留一項,這花了不少時間才找出解法,在此紀錄一下。

最大的問題是「兩筆資料完全重複」,直接用SQL篩選就一定會同時篩出兩筆。

如果讓兩筆資料不完全重複,至少一欄,那就能用SQL篩出刪除重複。


如果不熟的朋友,建議先備分資料表。

步驟一:替有完全重複資料表新增一欄「自動編號」。

步驟二:「建立」→「查詢精靈」→「尋找重複資料查詢精靈」→選擇該資料表。

步驟三:選擇「應唯一」含有重複值的欄位(如日期或ID),下一步 

步驟四:選擇「自動編號」附加查詢,下一步  ,完成。

步驟五:選取該查詢「設計檢視」。

步驟六:在「自動編號」新增準則,如果是輸入一次兩筆完全重複資料,則是「mod 2 = 1」,除二餘一或二都可以。如果是連輸兩次,則篩選開始重複的標號。

步驟七:「設計查詢」右邊按下「刪除」,然後按下「執行」。

步驟八:跳出警示視窗,詢問是否要刪除,選擇「是」。

步驟九:回原資料表,刪除「自動編號」欄位,即大功告成。

當初想快破頭,現在仔細想想,都是因為sql沒有能選擇其中一個重複資料,代條件選取會同時選中所有重複資料。直到看到用自動編號,才破解了這個難關。