Mysql
 sql >> Database >  >> RDS >> Mysql

seleziona le ultime due righe per ogni utente per ottenere la differenza di una colonna (MySQL)

Devi migliorare su questo, ma questo è fondamentalmente il modo in cui lo fai. puoi usare un self-join

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