Según mi experiencia, la forma más rápida es tomar cada fila para la que no hay una fila más nueva en la tabla.
Otra ventaja es que la sintaxis utilizada es muy simple y que el significado de la consulta es bastante fácil de entender (tome todas las filas de manera que no exista una fila más nueva para el nombre de usuario que se está considerando).
NO EXISTE
SELECT username, value
FROM t
WHERE NOT EXISTS (
SELECT *
FROM t AS witness
WHERE witness.username = t.username AND witness.date > t.date
);
NUMERO DE FILA
SELECT username, value
FROM (
SELECT username, value, row_number() OVER (PARTITION BY username ORDER BY date DESC) AS rn
FROM t
) t2
WHERE rn = 1
UNIR INTERNAMENTE
SELECT t.username, t.value
FROM t
INNER JOIN (
SELECT username, MAX(date) AS date
FROM t
GROUP BY username
) tm ON t.username = tm.username AND t.date = tm.date;
IZQUIERDA COMBINACIÓN EXTERNA
SELECT username, value
FROM t
LEFT OUTER JOIN t AS w ON t.username = w.username AND t.date < w.date
WHERE w.username IS NULL