Voici trois solutions possibles. Donnez-leur un essai et voyez ce qui est le mieux pour vos données et votre situation. Gardez à l'esprit que dans les situations où un nom d'utilisateur a deux valeurs submitted_date identiques, les résultats peuvent ne pas correspondre à ce que vous attendiez.
SELECT
T1.id,
T1.username
FROM
My_Table T1
INNER JOIN
(
SELECT username, MAX(submitted_date)
FROM My_Table T2 GROUP BY username
) SQ
ON SQ.username = T1.username AND SQ.submitted_date = T1.submitted_date
.
SELECT
T1.id,
T1.username
FROM
My_Table T1
WHERE
NOT EXISTS
(
SELECT *
FROM
My_Table T2
WHERE
T2.username = T1.username AND
T2.submitted_date > T1.submitted_date
)
.
SELECT
T1.id,
T1.username
FROM
My_Table T1
LEFT OUTER JOIN My_Table T2 ON
T2.username = T1.username AND
T2.submitted_date > T1.submitted_date
WHERE
T2.id IS NULL
Merci, cela semble faire parfaitement. Je pourrais avoir besoin des plus compliqués plus tard. –
Heureux que ça a marché pour vous. Si votre colonne d'ID est un champ d'identité qui s'incrémente automatiquement, cela devrait vous donner des résultats corrects, à condition que la date de soumission soit définie lors de la première insertion de la ligne et qu'elle ne soit jamais modifiée ultérieurement. – BradC