Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Group by com Order by DESC


como a tabela só tem esses 3 campos, e você está filtrando por uid você pode usar apenas o MAX sem o JOIN:
SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version

No entanto, se a tabela tiver mais campos ou você não estiver filtrando por uid - você precisa primeiro obter a data e hora MAX para cada versão e, em seguida, selecionar a linha:
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