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

MySQL - Regrouper par avec Ordre par DESC

puisque la table n'a que ces 3 champs, et que vous filtrez par uid, vous pouvez simplement utiliser le MAX sans le JOIN :

SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version

Cependant, si la table avait plus de champs, ou si vous ne filtrez pas par uid - vous devez d'abord obtenir la date/heure MAX pour chaque version, puis sélectionner la ligne :

SELECT t.uuid, t.version, t.datetime 
FROM table t JOIN (
    SELECT version, MAX(datetime) Maxdatetime
    FROM table
    WHERE uuid='bla'
    GROUP BY version
) r ON t.version = r.version AND t.datetime = r.Maxdatetime
WHERE t.uuid='bla'
ORDER BY t.datetime desc