Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie die zwei letzten Zeilen für jeden Benutzer aus, um die Differenz einer Spalte zu erhalten (MySQL)

Sie müssen das verbessern, aber im Grunde machen Sie das so. Sie können einen Self-Join verwenden

SELECT uid, MAX(myvalue)-MIN(myvalue) AS diff FROM
    (SELECT a.* FROM tablename AS a
        LEFT JOIN tablename AS a2
            ON a.uid=a2.uid AND a.myvalue<=a2.myvalue
        GROUP BY uid,myvalue
        HAVING COUNT(*)<=2
    ) a
GROUP BY uid