2016-11-17 5 views
0

Ich habe eine Tabelle wieSubtraktion von vorherigen Wert in mysql

Id_indicator Value trend Date_data 
1 0 0 2011-08-18 09:16:15 
1 2 1 2011-08-18 10:16:15 
1 1 -1 2011-08-18 11:16:15 
1 2 1 2011-08-18 12:16:15 
2 21 0 2011-08-18 13:16:15 
2 21 0 2011-08-18 14:16:15 
2 21 0 2011-08-18 15:16:15 
3 3 0 2011-08-18 16:16:15 
3 4 1 2011-08-18 17:16:15 
3 4 0 2011-08-18 18:16:15 
4 4 0 2011-08-18 19:16:15 

Ich brauche, um herauszufinden, was der Unterschied zwischen früheren Werten basierend auf id_indicator und fügen Sie eine Spalte in der rechten und der Eingabe dieser Wert. Beispiel als

Id_indicator Value trend Date_data Difference 
1 0 0 2011-08-18 09:16:15 0 
1 2 1 2011-08-18 10:16:15 2 
1 1 -1 2011-08-18 11:16:15 -1 
1 2 1 2011-08-18 12:16:15 1 
2 21 0 2011-08-18 13:16:15 0 
2 21 0 2011-08-18 14:16:15 0 
2 21 0 2011-08-18 15:16:15 0 
3 3 0 2011-08-18 16:16:15 0 
3 4 1 2011-08-18 17:16:15 1 
3 4 0 2011-08-18 18:16:15 0 
4 4 0 2011-08-18 19:16:15 0 

Dank

+2

Mögliches Duplikat [MySQL - Subtrahierend Wert des vorherigen R., Gruppe] (http://stackoverflow.com/questions/13196190/mysql-subtracting-value -von-vorheriger Reihe-Gruppe-nach) – CGritton

Antwort

0

Sie zuerst eine Lookup erstellen konnte, die Ihnen den vorherigen Zeitstempel für jede ID und das Datum und dann kommen Sie zu diesem Nachschlag gibt.

Etwas Ähnliches (nicht getestet):

SELECT * -- t1.value - t2.vaue... 
FROM 
    (SELECT t1.Id_indicator, 
      t1.Date_data, 
      max(t2.Date_date) AS prev_date_data 
    FROM TABLE t1 
    LEFT JOIN TABLE t2 ON t1.Id_indicator = t2.Id_indicator 
    AND t2.Date_data < t1.Date_data 
    GROUP BY 1, 2) AS lookup 
LEFT JOIN TABLE t1 ON t1.Id_indicator = lookup.Id_indicator 
AND t1.Date_data = lookup.Date_data 
LEFT JOIN TABLE t2 ON t2.Id_indicator = lookup.Id_indicator 
AND t2.Date_data = lookup.prev_date_data