Der Gegenstand der Frage ist nicht sehr erklärend, sorry dafür.Sql zu Timediff zwischen zwei Zeilen basierend auf ID finden
Ya so die Frage folgt: Ich habe eine Datenbankstruktur wie unten, wo pk ist Primärschlüssel, ID ist etwas, das für viele Zeilen mehrere ist.
+------+------+---------------------+
| pk | id | value |
+------+------+---------------------+
| 99 | 1 | 2013-08-06 11:10:00 |
| 100 | 1 | 2013-08-06 11:15:00 |
| 101 | 1 | 2013-08-06 11:20:00 |
| 102 | 1 | 2013-08-06 11:25:00 |
| 103 | 2 | 2013-08-06 15:10:00 |
| 104 | 2 | 2013-08-06 15:15:00 |
| 105 | 2 | 2013-08-06 15:20:00 |
+------+------+---------------------+
Was wirklich erhalten ist, müssen, ist, Wertdifferenz zwischen den ersten zwei Reihen (die von Wert bestellt wird) für jede Gruppe (wobei Gruppe von id). So gemäß obige Struktur benötigen I TIMEDIFF (value100, value99) [die für die ID-1-Gruppe ist] und TIMEDIFF (value104, value103) [die für id 2 -Gruppe]
dh Wertdifferenz der Zeit nach Wert geordnet für die ersten zwei Reihen in jeder Gruppe.
Eine Möglichkeit, die ich denken kann, ist durch 3 Self-Joins (oder 3 Unterabfragen), so dass die ersten beiden in 2 von ihnen, und dritte Abfrage Subtrahieren finden. Irgendwelche Vorschläge?
brauchen Sie es in einem einzigen SQL-Befehl? Können Sie (oder möchten Sie) eine gespeicherte Prozedur verwenden? – Barranka
Wird Liebe single sql Lösung – amitchhajer
Just aktualisiert mein Beispiel .. Bitte markieren Sie eine Antwort als Lösung für Ihr Problem .. wenn jemand passt – lordkain