[SQL] Direkt aufeinander folgende Datensätze gruppieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von die_kackwurst, 8. Juni 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. Juni 2010
    Direkt aufeinander folgende Datensätze gruppieren

    Hallo!

    Ich habe eine Datenbank die man sich wie folgt vorstellen könnte:

    ID | Datum | Name

    Dabei ist das Datum immer unterschiedlich.
    Die ID kommt mehrfach vor. Das ist auch richtig so. Allerdings ist es falsch, dass teilweise eine Person direkt nacheinander die selbe ID "bearbeitet" hat..

    Also könnte man es sich so vorstellen
    ID | Datum | Name
    1 1.1 A
    1 2.1 A
    1 2.1 B
    2 1.1 A
    3 2.1 C
    4 2.1 A
    4 2.1 C
    4 4.1 A
    5 5.1 B
    5 7.1 B
    6 2.1 A
    6 3.1 B
    6 3.1 C
    7 5.1 A

    Aussehen sollte es aber dann wie folgt:

    ID | Datum | Name
    1 1.1 A
    1 2.1 B
    2 1.1 A
    3 2.1 C
    4 2.1 A
    4 2.1 C
    4 4.1 A
    5 5.1 B
    6 2.1 A
    6 3.1 B
    6 3.1 C
    7 5.1 A

    Gibt es irgendwie einen SQL befehl mit dem ich das anstellen kann?!
    Ich würde dann gerne auch noch zählen, welche Leute sich mehrfach (nach der ersten "Reinigung") mit einer ID beschäftigt haben.

    Hoffe das geht iwi mit SQL...

    Danke
     
  2. 8. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    spontan fällt mir keine sql ein, höchstens du programmierst es händisch und frägst einfach ab, ob bereits ein eintrag mit der ID und dem Namen vorhanden ist.
     
  3. 8. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    mmh na ich will das in Talend Open Studio verwenden.. Von daher wäre es schon besser wenn das mit irgendwelchen Abfragen realisierbar ist..

    Hab das jetzt so gelöst das ich mir die gewünschten infos mit nem makro aus ner exceltabelle ziehe.. ist aber doof weil ich teilweise datensätze von um die 500.000 zeilen bearbeiten will/muss..
     
  4. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    warum schreibst du nicht einen trigger der deine eingabe direkt überprüft?

    und wenn ein doppelter eintrag vorkommt, den einfach nicht einträgst?!
    dann hast du zumindestens in zukunft das problem gelöst.
     
  5. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    möchstest dus hinterher für die ausgabe gruppieren, so wies im threadtitel steht, oder möchtest du verhindern, dass solche einträge überhaupt in der datenbank landen?
     
  6. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    möchte es gruppieren.. das pro Name die Anzahl der Doppelten steht...
    Also welche mehrfach, nicht direkt aufeinander folgend, einer ID zugeordnet sind...
     
  7. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    mmn. geht das mit nem sauberen code schneller als mit überdimensionierten, dreckigem query ^^

    du programierst doch mit java? da sollte sich doch schnell was basteln lassen.
    rumprobieren kannst du später auch noch, dann kannst du auch vergleichen was schneller läuft.
     
  8. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    naja in TOS (Talend Open Studio) kann man keine globalen variablen deklarieren was genau mein problem ist... deswegen müsste ich es über nen SQL code lösen
     
  9. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    Hmm, hier mal nen Vorschlag fürn Query (du musst natürlich noch "Tabelle" anpassen, da du nicht gesagt hast, wie die bei dir heisst)

    Code:
    SELECT * FROM Tabelle outer WHERE NOT EXISTS(
     SELECT * FROM Tabelle inner WHERE
     outer.ID=inner.ID AND outer.Name=inner.Name AND outer.Datum > inner.Datum
     )
    Allerdings filtert das Query alle Bearbeitungen an einer Datei von einer Person aus, die nicht die erste ist, sie müssen nicht zwangsläufig hintereinander sein, weiss also nicht, ob das das ist, was du haben willst.
     
  10. 9. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    mmh versteh jetzt nicht genau was du meinst...

    also ich möchte ansich eine tabelle ausgegeben habe, wo ich den namen bekomme, und dazu die anzahl wie oft er sich doppelt mit einer ID befasst hat...

    Achso noch zur Info: ich arbeite mit Oracle (glaub Version 11 is das)
     
  11. 10. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    Du wolltest doch die Datensätze gefiltert haben, die doppelt sind (bis auf das Datum) dacht ich.
    Naja, das mit dem Zählen dürfte nicht so schwer sein, denk ich. Muss mir nochmal die genaue Syntax angucken, aber mit SQL kann man schon echt ne Menge schaffen.
     
  12. 10. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    ja das würde auch reichen, weil ich dann ja einfacher zählen könnte!
    Super wäre halt, wenn ich direkt die Ergebnisse bekommen könnte...

    Wär sowas von genial wenn du das hinbekommst
     
  13. 14. Juni 2010
    AW: Direkt aufeinander folgende Datensätze gruppieren

    und hast dus hinbekommen?
     
  14. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.