Nie zwraca tego, czego oczekujesz, ponieważ grupowanie odbywa się przed uporządkowaniem, co odzwierciedla pozycja klauzul w instrukcji SQL. Niestety, będziesz musiał stać się bardziej wyrafinowany, aby uzyskać żądane wiersze. Spróbuj tego:
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