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). 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. Mysql - suchen - sql doppelte einträge zusammenfassen - Code Examples. 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.
Suchen Sie in Mysql nach Duplikaten oder mehr, löschen Sie sie bis auf die erste Eingabe (2) Ich habe eine Tabelle mit Zeilen wie ID, Länge, Zeit und einige davon sind Duplikate, wobei Länge und Zeit in einigen Zeilen gleich sind. Ich möchte alle Kopien der ersten eingereichten Zeile löschen. Zusammenführen - sql doppelte einträge nur einmal anzeigen - Code Examples. id | length | time 01 | 255232 | 1242 02 | 255232 | 1242 <- Delete that one Ich habe das um alle Duplikate in der Tabelle anzuzeigen. SELECT idgarmin_track, length, time FROM ` 80 dage_garmin_track ` WHERE length in ( SELECT length GROUP BY length HAVING count (*) > 1) ORDER BY idgarmin_track, length, time LIMIT 0, 500
#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. Sql - SQL doppelte Einträge (innerhalb einer Gruppe). Deine Daten sind schlicht kaputt. 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.
Suchen Sie doppelte Datensätze in einer Tabelle mit SQL Server (9) Fügen Sie einfach alle Felder zur Abfrage hinzu und denken Sie daran, sie auch zu Gruppieren nach hinzuzufügen. Select shoppername, a, b, amountpayed, item, count (*) as cnt from dbo. sales group by shoppername, a, b, amountpayed, item having count (*) > 1 Ich überprüfe eine Tabelle, die Transaktionsdaten einer E-Commerce-Site enthält, und finde die genauen Fehler. Ich möchte, dass Ihre Hilfe doppelte Datensätze in einer Tabelle mit 50 Spalten auf SQL Server findet. Angenommen, meine Daten sind: OrderNo shoppername amountpayed city Item 1 Sam 10 A Iphone 1 Sam 10 A Iphone--- >> Duplication to be detected 1 Sam 5 A Ipod 2 John 20 B Macbook 3 John 25 B Macbookair 4 Jack 5 A Ipod Angenommen, ich verwende die folgende Abfrage: Select shoppername, count (*) as cnt group by shoppername Ich werde zurückkehren Sam 2 John 2 Ich möchte jedoch keine Duplikate finden, die nur aus 1 oder 2 Spalten bestehen. Ich möchte das Duplikat über alle Spalten in meinen Daten zusammen finden.
"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?
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. 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.