Použijte 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;
Všimněte si, že nyní odstraněná odpověď od @NiVeR by stačila, pokud bychom chtěli pouze maximální datum pro každý účet. Pokud potřebujeme také hodnotu nebo obecně jiné sloupce z každého záznamu, pak bychom museli provést další spojení nebo použít číslo řádku, jak jsem to udělal výše.
Viz Ukázka na SQL Fiddle .