Usa l'aggregato MAX(signin)
raggruppati per id. Questo elencherà gli signin
più recenti per ogni id
.
SELECT
id,
MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id
Per ottenere l'intero record singolo, esegui un INNER JOIN
contro una sottoquery che restituisce solo il MAX(signin)
per ID.
SELECT
tbl.id,
signin,
signout
FROM tbl
INNER JOIN (
SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=1