Sử dụng 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;
Lưu ý rằng câu trả lời hiện đã bị xóa do @NiVeR đưa ra sẽ đủ nếu chúng tôi chỉ muốn ngày tối đa cho mỗi tài khoản. Nếu chúng ta cũng cần giá trị hoặc nói chung là các cột khác từ mỗi bản ghi, thì chúng ta sẽ phải thực hiện một phép nối bổ sung hoặc sử dụng số hàng như tôi đã làm ở trên.
Xem Demo trên SQL Fiddle .