Supponiamo di estrarre un set di dati.Oracle: registrare il record con la data massima
cioè
SELECT A, date
FROM table
E voglio solo il record con la data massima (per ogni valore di A). Potrei scrivere
SELECT A, col_date
FROM TABLENAME t_ext
WHERE col_date = (SELECT MAX (col_date)
FROM TABLENAME t_in
WHERE t_in.A = t_ext.A)
Ma la mia domanda è davvero lunga ... c'è un modo più compatto con funzione analitica di fare lo stesso?
Cosa intendi con le cravatte? – Revious
@ Gik25 - Si verificherà un pareggio se, ad esempio, esistessero due righe in "TABLENAME' che avevano lo stesso valore per" A "e lo stesso valore per" SOME_DATE_COLUMN ". La tua query originale restituirebbe entrambe quelle righe come sarebbe mia. Se, d'altra parte, hai usato la funzione 'ROW_NUMBER', solo una delle due righe verrebbe restituita (anche se la scelta della riga da restituire sarebbe arbitraria). –