sql >> Databáze >  >> RDS >> Oracle

Vyhledání nejnovější smlouvy pro každý účet

Použijte 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;

Všimněte si, že nyní odstraněná odpověď od @NiVeR by stačila, pokud bychom chtěli pouze maximální datum pro každý účet. Pokud potřebujeme také hodnotu nebo obecně jiné sloupce z každého záznamu, pak bychom museli provést další spojení nebo použít číslo řádku, jak jsem to udělal výše.

Viz Ukázka na SQL Fiddle .



  1. Rozbalte na OracleConnection

  2. Python, Ruby a Golang:Srovnání aplikací webových služeb

  3. MariaDB JSON_DEPTH() Vysvětleno

  4. Obecná chyba:Neshoda verze OS