Seleccione los 3 registros más recientes donde los valores de una columna son distintos

Tengo la siguiente tabla:

    id       time      text      otheridentifier
    -------------------------------------------
    1        6         apple     4
    2        7         orange    4
    3        8         banana    3
    4        9         pear      3
    5        10        grape     2

o que quiero hacer es seleccionar los 3 registros más recientes (por tiempo desc), cuyaotheridentifieras @ son distintas. Entonces, en este caso, el resultado seríaid 's: 5, 4 y 2.

id = 3 se omitiría porque hay un registro más reciente con la mismaotheridentifier campo.

Esto es lo que intenté hacer:

SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3

Sin embargo, termino obteniendo filas deid = 5,3 y1 en lugar de 5, 4, 2 como se esperaba.

¿Alguien puede decirme por qué esta consulta no devuelve lo que esperaba? Intenté cambiar ORDER BY a ASC pero esto simplemente reorganiza las filas devueltas a 1, 3, 5.

Respuestas a la pregunta(16)

Su respuesta a la pregunta