PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wyodrębnij ostatni wiersz z Postgresql dla każdego identyfikatora

Najbardziej wydajnym sposobem jest użycie distinct on Postgresa operator

select distinct on (id) id, date, another_info
from the_table
order by id, date desc;

Jeśli potrzebujesz rozwiązania, które działa w różnych bazach danych (ale jest mniej wydajne), możesz użyć funkcji okna:

select id, date, another_info
from (
  select id, date, another_info, 
         row_number() over (partition by id order by date desc) as rn
  from the_table
) t
where rn = 1
order by id;

Rozwiązanie z funkcją okna jest w większości przypadków szybsze niż użycie podzapytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić numery wierszy w zapytaniu PostgreSQL?

  2. Jak połączyć GraphQL i PostgreSQL

  3. Jak sprawić, by rozszerzenie nie było relokowalne?

  4. Railsy:Błąd podczas instalacji pg gem

  5. Jak pg_dump bazę danych RDS Postgres?