PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chọn hồ sơ dựa trên ngày cuối cùng

Trong PostgreSQL, để lấy các hàng duy nhất cho một tập hợp các cột đã xác định , kỹ thuật thích hợp thường là DISTINCT ON :

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

Bạn nhận được chính xác một hàng mỗi ID theo cách này - cách có "Course Date" mới nhất được biết đến và "Course Name" đầu tiên (theo thứ tự sắp xếp) trong trường hợp ràng buộc vào ngày.

Bạn có thể thả NULLS LAST nếu cột của bạn được xác định NOT NULL .

Để nhận các hàng duy nhất trên mỗi ("ID", "Course Name") :

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

Chi tiết trong câu trả lời liên quan này:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Kiểm tra xem IP (inet) có nằm trong danh sách Dải IP không

  2. Tính tuổi theo năm trong PostgreSQL

  3. Postgres nối hoặc đặt từng phần tử (nếu không tồn tại) của một mảng thành một cột mảng

  4. Nối các bảng trên các cột của khóa ngoại / khóa chính tổng hợp trong một truy vấn

  5. Đếm số lần xuất hiện của một chuỗi con trong một chuỗi trong PostgreSQL