Hallo,
hoffe es passt hier rein. Gleich vorweg, ich bin jetzt nicht der DB-Profi, komme aber gut zurecht.
Es geht um eine Postgresql-DB.
Aus 6/7 Tabellen habe ich eine schon fast nahezu perfekte Ausgabe gestaltet...
Kurz gesagt es geht um folgendes...
Der Bereich "start/ende" muss gleich/(kleiner/größer) sein als gesamt_start/ende. Und sollten IDs mehrfach vorkommen müssen diese "direkt anschließend sein" oder einen Überhang" haben.
Hier ein bsp. mit nur 1x vorkommende IDs. Diese konnte ich gleich passend filtern, also welche Korrekt waren, um mir die Fehlerhaften anzuzeigen.
Ich habe einfach, start_gleich/kleiner, mit ende_gleich/größer geprüft.
OK:
OK:
FEHLERHAFT:
---------------------------------------------------------------------------------------------
Jetzt gibt es aber Fälle mit mehreren IDs.
Bsp:
Dies würde ...
2-95
90-223
223-284
284-300
... passen. Da die IDs direkt anschließen oder einen Überstand haben und es keine Lücken zu "gesamt" 5-300 gibt.
Jetzt meine Frage.
Ist so etwas sinnvoll in ein Query einzubauen, oder sollte solch eine Bearbeitung eher außerhalb der DB (ich würde es dann in Pandas realisieren) zu lösen?
Das für mich eigentliche Problem. Lässt sich start/ende, vorab, sinnvoll Auflösen... Damit wär ja eiegntlich schon das Problem gelößt.
Falls es dazu eine Lösung gibt, hätte ich "irgendwie" geprüft, ob alle Zahlen anschließen und/oder überstand haben. Sollte dies Valide sein, müsste ich "nur noch" Start/Ende Prüfen ob diese mit gesamt passen.
Ja, so geschrieben klingt es irgendwie einfach...
Aber ich stehe auf dem Schlauch, gibt es Mathematisch dafür überhaupt ein Weg/Namen, oder müsste man alle try/error durchprobieren...
Schon Begriffe für dieses Problem wären Gold Wert.
Viele Grüße
Chris
hoffe es passt hier rein. Gleich vorweg, ich bin jetzt nicht der DB-Profi, komme aber gut zurecht.
Es geht um eine Postgresql-DB.
Aus 6/7 Tabellen habe ich eine schon fast nahezu perfekte Ausgabe gestaltet...
Kurz gesagt es geht um folgendes...
Der Bereich "start/ende" muss gleich/(kleiner/größer) sein als gesamt_start/ende. Und sollten IDs mehrfach vorkommen müssen diese "direkt anschließend sein" oder einen Überhang" haben.
Hier ein bsp. mit nur 1x vorkommende IDs. Diese konnte ich gleich passend filtern, also welche Korrekt waren, um mir die Fehlerhaften anzuzeigen.
Ich habe einfach, start_gleich/kleiner, mit ende_gleich/größer geprüft.
OK:
id | gesamt_start | gesamt_ende | start | ende |
111 | 1 | 100 | 1 | 100 |
OK:
id | gesamt_start | gesamt_ende | start | ende |
222 | 1 | 100 | 1 | 110 |
FEHLERHAFT:
id | gesamt_start | gesamt_ende | start | ende |
333 | 1 | 100 | 1 | 80 |
---------------------------------------------------------------------------------------------
Jetzt gibt es aber Fälle mit mehreren IDs.
Bsp:
id | gesamt_start | gesamt_ende | start | ende |
999 | 5 | 300 | 2 | 95 |
999 | 5 | 300 | 90 | 223 |
999 | 5 | 300 | 95 | 223 |
999 | 5 | 300 | 223 | 284 |
999 | 5 | 300 | 284 | 291 |
999 | 5 | 300 | 284 | 291 |
999 | 5 | 300 | 284 | 300 |
Dies würde ...
2-95
90-223
223-284
284-300
... passen. Da die IDs direkt anschließen oder einen Überstand haben und es keine Lücken zu "gesamt" 5-300 gibt.
Jetzt meine Frage.
Ist so etwas sinnvoll in ein Query einzubauen, oder sollte solch eine Bearbeitung eher außerhalb der DB (ich würde es dann in Pandas realisieren) zu lösen?
Das für mich eigentliche Problem. Lässt sich start/ende, vorab, sinnvoll Auflösen... Damit wär ja eiegntlich schon das Problem gelößt.
Falls es dazu eine Lösung gibt, hätte ich "irgendwie" geprüft, ob alle Zahlen anschließen und/oder überstand haben. Sollte dies Valide sein, müsste ich "nur noch" Start/Ende Prüfen ob diese mit gesamt passen.
Ja, so geschrieben klingt es irgendwie einfach...
Aber ich stehe auf dem Schlauch, gibt es Mathematisch dafür überhaupt ein Weg/Namen, oder müsste man alle try/error durchprobieren...
Schon Begriffe für dieses Problem wären Gold Wert.
Viele Grüße
Chris