Appena posso provo anche la tua soluzione, in rete poco prima che mi scrivessi avevo trovato questa soluzione e la stavo testando:

WITH tabmom AS (
SELECT
id,
identificativo,
data,
altro1,
altro2,
RANK() OVER(
PARTITION BY identificativo
ORDER BY data DESC) as primorecord
FROM tabella)
SELECT
id, identificativo,
data,
altro1,
altro2
FROM tabmom
WHERE primorecord=1

funziona