marcel1989
Goto Top

MYSQL Time +- 10 Sec

Hallo ich habe eine Tabelle die aus mehreren Zeilen besteht. Beispiel:
tabelle

Jetzt ist es so das diese 2 Datensätze zusammen gehören. Wie man sieht ist leider der eine Datensatz eine Sekunde zu spät gekommen.

Wie kann ich nun in Group by das lösen das er immer +- 2 Sekunden schaut und das dann als eine Zeile ausgibt?

Ich will halt am ende einen Wert stehen habe:

2018-07-04 07:59:35 27 104 99

und nicht wii auf dem vorhergehenden Bild.

Ich hab mich schon mit "GROUP BY (UNIX_TIMESTAMP(TimeString) + 5) DIV 10" Versucht. Nur führt das zu dem Ergebniss das die 2te Zeile komplett fehlt.

Danke für die hilfe im Voraus.

Gruß
Marcel

Content-Key: 387063

Url: https://administrator.de/contentid/387063

Printed on: April 23, 2024 at 22:04 o'clock

Member: Cenion
Solution Cenion Sep 20, 2018 at 12:05:17 (UTC)
Goto Top
Hi,

Stichwort "GROUP_CONCAT". Ermöglich die Ausgabe der einzelnen Werte aller gruppierten Datensätze.

Gruß
Cenion
Member: Marcel1989
Marcel1989 Sep 20, 2018 updated at 13:57:26 (UTC)
Goto Top
Ok die Syntax versteh ich noch nicht...
Anstatt Group by nun Group_Concat (TimeString).
Ich glaube Group_Concat bringt mich hier nicht weiter.
Weil ich hab ja außer das Datum und die Uhrzeit bis zu den Minuten ja nichts gemeinsam.
Und ich weiß jetzt gerade nicht wie ich das verwenden soll um die Datensätze so zusammen zu fassen.

Über hilfe und vielleicht eventuell eine Aufklärung würde ich mich sehr freuen.

Gruß
Marcel

EDIT: es ist ja so bei meinen Daten ich hab ja dann mal 20 stück die von der Zeit her passen und dann bei 100000 Datensätze 4 stück dabei die sich mal um eine bis maximal 2 sekunden unterscheiden. Also kann ich nicht wie hier gedacht jede Zeile mit der nächsten verknüpfen da ja 20 Zeilen passen und ich die dann ja zu nicht passenden mache weil ich sie mit der darunter liegenden "zusammenführe". Wenn ich die GROUP_Concat richtig verstanden habe
Member: wiesi200
Solution wiesi200 Sep 20, 2018 at 14:02:32 (UTC)
Goto Top
Hallo,

als alternativ Idee, du könntest dir einen "Hilfsspalte" durch eine Unterabfrage basteln wo du die Uhrzeit rundest.
Wobei ich mir erst mal das Problem ansehen würde warum du 2 Schreiboperationen für einen Datensatz hast.
Member: Cenion
Solution Cenion Sep 20, 2018 at 14:19:50 (UTC)
Goto Top
Ich glaub du hast es falsch verwendet, deine Group-By-Anweisung war in Ordnung.
Probier mal folgendes:

SELECT GROUP_CONCAT("",*SPALTE1*), GROUP_CONCAT("",*SPALTE2*), GROUP_CONCAT("",*SPALTE3*) FROM *TABELLE* GROUP BY (UNIX_TIMESTAMP(TimeString) + 5) DIV 10

Dies sollte genau dein Problem beheben. Falls eine Gruppierung stattfindet, werden die Werte der Datensätze genommen und zusammen ausgegeben, ansonsten die normalen Werte des einzelnen Datensatzes.
tabelle
ergebnis