L'approccio della funzione analitica sarebbe simile a
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
Tieni presente che, a seconda di come vuoi gestire le pareggi (o se sono possibili pareggi nel tuo modello di dati), potresti voler utilizzare il ROW_NUMBER
o il DENSE_RANK
funzione analitica anziché RANK
.