sql >> Databáze >  >> RDS >> PostgreSQL

Vyberte záznamy podle posledního data

V PostgreSQL získáte jedinečné řádky pro definovanou sadu sloupců , preferovaná technika je obecně DISTINCT ON :

SELECT DISTINCT ON ("ID") *
FROM   "Course"
ORDER  BY "ID", "Course Date" DESC NULLS LAST, "Course Name";

Získáte přesně jeden řádek podle ID tímto způsobem - ten s nejnovějším známým "Course Date" a první "Course Name" (dle pořadí řazení) v případě remíz na datum.

Můžete vypustit NULLS LAST pokud je váš sloupec definován NOT NULL .

Chcete-li získat jedinečné řádky na ("ID", "Course Name") :

SELECT DISTINCT ON ("ID", "Course Name") *
FROM   "Course"
ORDER  BY "ID", "Course Name", "Course Date" DESC NULLS LAST;

Podrobnosti v této související odpovědi:



  1. Trace Flag 2389 a nový odhad kardinality

  2. Jak v rámci spouštěcí funkce získat, která pole se aktualizují

  3. Oracle self join počínaje minimální hodnotou (rok měsíce) pro každý oddíl

  4. Obnovení přístupu k instanci serveru SQL bez restartování