Utilisez l'agrégat MAX(signin)
regroupés par identifiant. Cela répertoriera la signin
la plus récente pour chaque id
.
SELECT
id,
MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id
Pour obtenir l'intégralité de l'enregistrement, effectuez un INNER JOIN
contre une sous-requête qui ne renvoie que le MAX(signin)
par identifiant.
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