Utilisez 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;
Notez que la réponse maintenant supprimée donnée par @NiVeR suffirait si nous ne voulions que la date maximale pour chaque compte. Si nous avons également besoin de la valeur, ou en général d'autres colonnes de chaque enregistrement, nous devrons effectuer une jointure supplémentaire ou utiliser le numéro de ligne comme je l'ai fait ci-dessus.
Voir Démo sur SQL Fiddle .