Selecione os três registros mais recentes em que os valores de uma coluna são distintos
Tenho a seguinte tabela:
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 eu quero fazer é selecionar os 3 registros mais recentes (por tempo desc), cujosotheridentifier
s são distintos. Portanto, neste caso, o resultado seriaid
: 5, 4 e 2.
id
= 3 seria ignorado porque há um registro mais recente com o mesmootheridentifier
campo.
Aqui está o que eu tentei fazer:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
No entanto, acabo recebendo linhas deid
= 5,3 e1 em vez de 5, 4, 2 conforme o esperad
Alguém pode me dizer por que essa consulta não retornaria o que eu esperava? Tentei alterar o ORDER BY para ASC, mas isso simplesmente reorganiza as linhas retornadas para 1, 3, 5.