2016-05-02 19 views
1

Also arbeite ich mit MySQL und PHP. Probleme beim Versuch, eine Abfrage zu erhalten, die den Unterschied zwischen aufeinanderfolgenden Zeilen berechnet.MySQL - Berechnen Sie den Unterschied zwischen den Zeilen

Was ich brauche, ist die Differenz zwischen jeder Zeile erhalten für: data_views, data_sub & data_videos für jeden Kanal-URL.

Viel zu schätzen, wenn jemand :)

Hier ist meine Tabellenstruktur kann helfen:

Table Image

+0

Hast du irgendwas probiert oder nur daran gedacht, Hilfe für deine Aufgabe zu suchen? – Ash

+0

Also wollen Sie den Unterschied zwischen den IDs 1-3, 3-4, 4-5 und so weiter berechnen? – Qirel

+0

Können Sie diese Werte einfach in Arrays setzen und dann die Subtraktion auf die Array-Werte durchführen? – stackunderflow

Antwort

1

Versuchen this..if Sie einfach entfernen ORDER BY A.channel_url Klausel nicht wollen, zu bestellen.

.
SELECT 
    A.*, 
    A.data_views - IFNULL(B.data_views, A.data_views) AS data_views_diff, 
    A.data_subs - IFNULL(B.data_subs, A.data_subs) AS data_subs_diff, 
    A.data_videos - IFNULL(B.data_videos, A.data_videos) AS data_videos_diff 
FROM 
    my_table A 
    LEFT JOIN my_table B 
    ON B.id = 
    (SELECT 
     MIN(id) 
    FROM 
     my_table C 
    WHERE C.id > A.id 
     AND C.id != A.id 
     AND C.channel_url = A.channel_url) 
ORDER BY A.channel_url; 

prüfen Fiddle

Verwandte Themen