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

Seleziona i 3 record più recenti in cui i valori di una colonna sono distinti

Non restituisce ciò che ti aspetti perché il raggruppamento avviene prima dell'ordine, come si evince dalla posizione delle clausole nell'istruzione SQL. Sfortunatamente dovrai diventare più elaborato per ottenere le righe che desideri. Prova questo:

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