Mysql
 sql >> Base de données >  >> RDS >> Mysql

sélectionnez les deux dernières lignes pour chaque utilisateur pour obtenir la différence d'une colonne (MySQL)

Vous devez améliorer cela, mais c'est essentiellement ainsi que vous procédez. vous pouvez utiliser une auto-jointure

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