Użyj ROW_NUMBER
:
SELECT account, "date", "value"
FROM
(SELECT
account, "date", "value",
ROW_NUMBER() OVER (PARTITION BY account ORDER BY "date" DESC) rn
FROM yourTable
) t
WHERE rn=1;
Zauważ, że teraz usunięta odpowiedź udzielona przez @NiVeR wystarczyłaby, gdybyśmy chcieli tylko maksymalnej daty dla każdego konta. Jeśli potrzebujemy również wartości lub ogólnie innych kolumn z każdego rekordu, musielibyśmy wykonać dodatkowe sprzężenie lub użyć numeru wiersza, jak to zrobiłem powyżej.
Zobacz Demo na SQL Fiddle .