Ich habe eine Tabelle wie folgt:SQL mit doppelten Datensätzen nach dem Datum Unterschied zu tun
id start_date end_date
01 2012-03-15 2012-04-02
01 2012-04-05 2012-05-12
01 2012-04-12 2012-05-21
02 2012-03-05 2012-06-13
03 2012-03-09 2012-03-19
03 2012-05-15 2012-08-01
Die Definition von doppelten Datensätzen hier ist jede Vielzahl von Reihen mit derselben ID und deren start_dates sind innerhalb von 31 Tagen voneinander . In dem obigen Beispiel, Reihe 2, 3 sind Duplikate von 1 und Zeile 6 wird kein Duplikat Zeile 5. Ich möchte die Duplikate entfernen zu bekommen:
id start_date end_date
01 2012-03-15 2012-04-02
02 2012-03-05 2012-06-13
03 2012-03-09 2012-03-19
03 2012-05-15 2012-08-01
Ich frage mich, ob diese Art der Filterung ist besser in Python getan, nachdem die Daten mit Duplikaten gesammelt wurden oder wenn es eine einfache Möglichkeit gibt, es in SQL zu tun.
Können Sie doppelte Startdaten für jede ID haben? (Und wenn ja, wie entscheiden Sie, welches das Duplikat ist?) – ZLK
Nein. Es gibt keine Duplikate für dasselbe Startdatum und dieselbe ID. – breezymri
Sie könnten es in Python mit minimalem Code erzwingen, iterieren über alle Zeilen, wenn das Datum <31 Tage in der vorherigen Zeile und die ID ist die gleiche Zeile löschen. Das ist einfach zu programmieren. Dann hängt es von der Leistung ab, die Iteration wird in Python wahrscheinlich langsam sein. – flyingmeatball