Той не връща това, което очаквате, защото групирането се случва преди подреждането, както е отразено от позицията на клаузите в SQL израза. За съжаление ще трябва да станете по-изискани, за да получите редовете, които искате. Опитайте това:
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