actionbrowser.com
#1 Hallo zusammen, ich habe eine Datenbank, deren Ursprung mehrere Exporte aus Outlook Adressbüchern sind. Die Daten sind teilweise unvollständig z. B. : Anrede; Herr; -; -; Vorname: Max; Max; -; WeitereVornamen Nachname: Mustermann; -; Mustermann Suffix Firma Abteilung Position Straßegeschäftlich: -; Musterstr. 12; -; Straßegeschäftlich2 Straßegeschäftlich3 email:;; Wie kann ich die Daten zusammen führen und eine neue Tabelle erstellen? Vielen Dank für Eure Hilfe Goofy #3 das sind unterschiedliche Dinge. Zum einen unterschiedliche Datenbanken. Schlimmer aber, die Daten in dem Stackoverflow-Artikel a) mehrere Datensätze und b) es gibt eine konkrete Regel, was da wie zusammengeführt werden soll. Deine Daten sind schlicht kaputt. Sql - SQL doppelte Einträge (innerhalb einer Gruppe). Offenbar ist bei Dir je Feld 3 Werte, mit; getrennt. Kann es sein, daß da 3 mal was zu importieren versucht wurde? Du könntest evtl. durch die Daten gehen, die Felder am; splitten, den längsten Teilstring als valide betrachten und das Feld damit updaten. Ob und wie das in SQL Light geht weiß ich nicht, kenne ich nicht.
Wir es mehr Häufig zum testen, finden Sie die Fehler und prüfen Sie, ob es wieder passiert. Können Sie uns ein Beispiel geben von der Gruppe der Duplikate und markieren Sie die Zeilen sollten entfernt werden? Informationsquelle Autor FrankS | 2008-10-08
Wenn Sie SQL Server 2005 oder höher verwenden (und die Tags für Ihre Frage SQL Server 2008 angeben), können Sie mithilfe von Rankingfunktionen die doppelten Datensätze nach dem ersten zurückgeben, wenn die Verwendung von Joins aus irgendeinem Grund weniger wünschenswert oder unpraktisch ist. Das folgende Beispiel zeigt dies in Aktion, wo es auch mit Nullwerten in den untersuchten Spalten arbeitet. Dubletten finden und zusammenführen | Datenbank-Forum. create table Table1 ( Field1 int, Field2 int, Field3 int, Field4 int) insert Table1 values (1, 1, 1, 1), (1, 1, 1, 2), (1, 1, 1, 3), (2, 2, 2, 1), (3, 3, 3, 1), (3, 3, 3, 2), (null, null, 2, 1), (null, null, 2, 3) select * from (select Field1, Field2, Field3, Field4, row_number() over (partition by Field1, Field2, Field3 order by Field4) as occurrence from Table1) x where occurrence > 1 Beachten Sie nach dem Ausführen dieses Beispiels, dass der erste Datensatz aus jeder "Gruppe" ausgeschlossen ist und dass Datensätze mit Nullwerten ordnungsgemäß verarbeitet werden. Wenn Sie keine Spalte zur Verfügung haben, um die Datensätze innerhalb einer Gruppe zu sortieren, können Sie die Spalte "Partitionierung nach" als Spalte "Reihenfolge nach" verwenden.
"GROUPID" IN ( select B. "GROUPID" from "EVENT" B group by B. "GROUPID" having count ( B. "GROUPID") <> 5) Ohne einen index auf GROUPID und 160k Einträge, das dauert viel zu lange. Versucht darüber nachzudenken, einen join, der kann damit umgehen, aber nicht finden können, eine gute Lösung so weit. Jeder kann das finden einer guten Lösung für diese vielleicht?
SQL zu finden, doppelte Einträge (innerhalb einer Gruppe) Ich habe ein kleines problem und ich bin mir nicht sicher, was wäre der beste Weg, es zu beheben, da ich nur beschränkten Zugriff auf die Datenbank (Oracle) selbst. In unserer Tabelle "EVENT" haben wir über 160k Einträge, jedes EREIGNIS hat eine GROUPID und ein normaler Eintrag ist genau 5 Zeilen mit der gleichen Gruppen-id. Aufgrund eines Fehlers haben wir derzeit ein paar doppelte Einträge (Duplikate, also 10 Zeilen statt 5, nur ein anderes EVENTID. Das kann sich ändern, so ist es nur <> 5). SQL Abfrage mit doppelte einträgen ausgeben - Administrator.de. Wir müssen die filter alle Einträge dieser Gruppen. Aufgrund der begrenzten Zugriff auf die Datenbank, die wir nicht verwenden können, eine temporäre Tabelle, noch können wir hinzufügen, einen index auf die Spalte GROUPID um es schneller zu machen. Können wir die GROUPIDs, die mit dieser Abfrage, aber wir brauchen eine zweite Abfrage, um die benötigten Daten select A. "GROUPID" from "EVENT" A group by A. "GROUPID" having count ( A. "GROUPID") <> 5 Eine Lösung wäre eine Unterauswahl: select * where A.