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

Sélectionnez les 3 enregistrements les plus récents où les valeurs d'une colonne sont distinctes

Il ne renvoie pas ce que vous attendez car le regroupement se produit avant le classement, comme en témoigne la position des clauses dans l'instruction SQL. Vous allez malheureusement devoir devenir plus fantaisiste pour obtenir les rangées que vous voulez. Essayez ceci :

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3