Doppelte Zeilen verwalten: Älteste Übermittlungen beibehalten
Doppelte Daten können die Integrität und Benutzerfreundlichkeit jeder Datenbank erheblich beeinträchtigen. In diesem Szenario besteht unser Ziel darin, doppelte Zeilen basierend auf dem Feld „subscriberEmail“ zu eliminieren und nur die ursprüngliche Übermittlung beizubehalten.
Um dies zu erreichen, ohne auf Techniken zum Tabellenaustausch zurückgreifen zu müssen, können wir die folgende SQL-Abfrage verwenden:
delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id
Diese Abfrage nutzt die Leistungsfähigkeit des Tabellenaliasings. Durch das Erstellen der Aliase x und z für die Tabelle myTable können wir Zeilen innerhalb derselben Tabelle vergleichen. Konkret verbinden wir x und z im Feld subscriberEmail und erstellen so effektiv einen Selbst-Join.
Die where-Klausel führt die entscheidende Filterung durch. Es eliminiert Datensätze in x, bei denen das ID-Feld größer ist als das entsprechende ID-Feld in z. Dadurch wird sichergestellt, dass nur nicht originale (doppelte) Übermittlungen gelöscht werden.
Um die Leistung weiter zu verbessern, sollten Sie die Implementierung eines UNIQUE-Index für die Spalte subscriberEmail in Betracht ziehen. Dadurch wird automatisch verhindert, dass in Zukunft doppelte Einträge in Ihre Tabelle eingefügt werden.
Durch die Implementierung dieser Abfrage können Sie doppelte Zeilen effizient entfernen und so die älteste Übermittlung für jede E-Mail-Adresse beibehalten, ohne dass komplexe Tabellenmanipulationen oder erforderlich sind Verfahren zum Mischen von Daten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3