在用python做回測時,發現同樣時間的資料點有兩個,仔細檢查,原來是access的資料表有重複資料。
一般教學是教只有一項重複,但是,因為是用python寫入,結果重複資料全部欄位皆相同。
每次用access都有一種水土不服的感覺,明明就是用python或sql很好理解的解法,但是access的使用者介面卻讓自己用不出來。
如何移除完全重複並只保留一項,這花了不少時間才找出解法,在此紀錄一下。
最大的問題是「兩筆資料完全重複」,直接用SQL篩選就一定會同時篩出兩筆。
如果讓兩筆資料不完全重複,至少一欄,那就能用SQL篩出刪除重複。
如果不熟的朋友,建議先備分資料表。
步驟一:替有完全重複資料表新增一欄「自動編號」。
步驟二:「建立」→「查詢精靈」→「尋找重複資料查詢精靈」→選擇該資料表。
步驟三:選擇「應唯一」含有重複值的欄位(如日期或ID),下一步
步驟四:選擇「自動編號」附加查詢,下一步 ,完成。
步驟五:選取該查詢「設計檢視」。
步驟六:在「自動編號」新增準則,如果是輸入一次兩筆完全重複資料,則是「mod 2 = 1」,除二餘一或二都可以。如果是連輸兩次,則篩選開始重複的標號。
步驟七:「設計查詢」右邊按下「刪除」,然後按下「執行」。
步驟八:跳出警示視窗,詢問是否要刪除,選擇「是」。
步驟九:回原資料表,刪除「自動編號」欄位,即大功告成。
當初想快破頭,現在仔細想想,都是因為sql沒有能選擇其中一個重複資料,代條件選取會同時選中所有重複資料。直到看到用自動編號,才破解了這個難關。