PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изберете записи въз основа на последната дата

В PostgreSQL, за получаване на уникални редове за определен набор от колони , предпочитаната техника обикновено е DISTINCT ON :

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

Получавате точно един ред за ID по този начин - този с най-новата известна "Course Date" и първото "Course Name" (според реда на сортиране) при равенство на датата.

Можете да премахнете NULLS LAST ако вашата колона е дефинирана NOT NULL .

За да получите уникални редове за ("ID", "Course Name") :

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

Подробности в този свързан отговор:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL заявка за броене/групиране по дни и показване на дни без данни

  2. Docker postgres не изпълнява init файл в docker-entrypoint-initdb.d

  3. RailsTutorial 3.2 Ch 11 - Грешка в синтаксиса на PostgreSQL нарушава емисията за състояние

  4. Разрешете вмъкване само от тригер

  5. Hibernate не може да създаде автоматично схема на Heroku postgres