Podejście do funkcji analitycznej wyglądałoby mniej więcej tak
SELECT a, some_date_column
FROM (SELECT a,
some_date_column,
rank() over (partition by a order by some_date_column desc) rnk
FROM tablename)
WHERE rnk = 1
Pamiętaj, że w zależności od tego, jak chcesz obsłużyć powiązania (lub czy powiązania są możliwe w Twoim modelu danych), możesz użyć ROW_NUMBER
lub DENSE_RANK
funkcja analityczna zamiast RANK
.