Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Encontrar o contrato mais recente para cada conta


Use 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;

Observe que a resposta agora excluída dada por @NiVeR seria suficiente se quiséssemos apenas a data máxima para cada conta. Se também precisarmos do valor ou, em geral, de outras colunas de cada registro, teríamos que fazer uma junção adicional ou usar o número da linha como fiz acima.

Veja Demonstração no SQL Fiddle .