Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Doppelte Einträge entfernen

Begonnen von mikarov, Mai 25, 2011, 10:02:46

⏪ vorheriges - nächstes ⏩

mikarov

Hallo helfer :)

ich bin absoluter neuling in Acces und stehe vor einem großem Problem.
Ich habe eine Große Datenbank mit ca 400.000.000 zeilen => 10gb und möchte in dieser doppelte einträge entfernen.
Die datenbank besteht lediglich aus einer Tabelle mit 2 Spalten.
Zwar habe ich schon einige Posts auch in anderen foren gefunden die dieses thema behandeln jedoch haben die mir nicht weiter geholfen weil ich sie entweder nicht verstanden habe oder die abfrage hätte umschreiben müssen und das für mich leider nicht praktikabel war aufgrund meines zu geringen Wissens.

Ich geb euch mal eine Beispielzeile:
Vorab es handelt sich hier um ein Firewall log:
Spalte1: xyz:192.168.0.0/123 Spalte2: ZYX:10.0.0.0/456

Falls nötig ist es auch kein problem eine 3. Spalte zu erstellen für einen Primären schlüssel. In diese müsste ich dann wenn ich das richtige verstanden habe nur die zahlen 1-400.000.000 eintragen?

zur Info noch:
Ich arbeite mit Access 2007, der englischen version.

Vielen Dank für eure Hilfe
Mikarov

MzKlMu

Hallo,
was ist denn das für eine DB?
Access geht nur für DBs mit max. 2GB Größe.
Gruß Klaus

mikarov

achso? dann hab ich ein problem :)

aktuell bin ich noch nicht so weit das es eine ist sondern sie besteht aus 8 kleineren die ich aber gerade zu einer Großen zusammen fügen wollte...

Dennoch besteht das problem nur das ich die abfragen dann eben 8 mal machen muss

MzKlMu

Hallo,
es gibt einen Abfrageassistenten zur Duplikatsuche. Der sollte Dir helfen.
Abfrage >Neu >Assi
Gruß Klaus

mikarov

Ja, leider wie der name schon sagt sucht er nur duplikate, löscht sie aber nicht.

das sieht dann so aus der er eine neue Spalte erstellt in der steht wie oft die jeweilige Zeile vor kommt. Da aber jede zeile 2-8 mal ca vor kommt hilft mir das nicht wirklich weiter.
Eventuell gibt es auch eine möglichkeite diese abfrage die der assisten erstellt um zu schreiben, oder aufgrund der neuen Spalte weitere abfragen zu machen jedoch kenne ich mich hierfür zu wenig aus

DF6GL

Hallo,

mit einer Abfrage ähnlich dieser sollte das gehen:


delete from tblTabelle1 where id in   
(select tbl2.id from tblTabelle1 as tbl1 inner join tblTabelle1 as tbl2 on tbl1.id > tbl2.id   where tbl2.Spalte1 = tbl1.Spalte1 and tbl2.Spalte2 = tbl1.Spalte2 )


"id" ist das Primärschlüsselfeld in tblTabelle1 , das den Datentyp Autowert, incremental   besitzt.  Wenn Du so ein Feld nachträglich einfügst, wird es automatisch mit Werten gefüllt.


Achtung:   Access kann, wie gesagt nur max. Dateigröße von 2 GB behandeln.  Auch bei etwas geringerer Datei(Tabellen-)größe kann es schon zu Problemen kommen.