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

PostgreSQL Chọn mục nhập gần đây nhất cho một ID nhất định

Có khoảng 5 cách khác nhau để thực hiện việc này, nhưng đây là một cách:

SELECT *
FROM yourTable AS T1 
WHERE NOT EXISTS(
    SELECT *
    FROM yourTable AS T2
    WHERE T2.ID = T1.ID AND T2.Date > T1.Date
)

Và đây là một cái khác:

SELECT T1.*
FROM yourTable AS T1
LEFT JOIN yourTable AS T2 ON
(
    T2.ID = T1.ID 
    AND T2.Date > T1.Date
)
WHERE T2.ID IS NULL

Thêm một:

WITH T AS (
    SELECT *, ROW_NUMBER() OVER(PARTITION BY ID ORDER BY Date DESC) AS rn
    FROM yourTable
)
SELECT * FROM T WHERE rn = 1

Được rồi, tôi sắp sửa rồi, đây là bài cuối cùng tôi sẽ đăng (hiện tại):

WITH T AS (
    SELECT ID, MAX(Date) AS latest_date
    FROM yourTable
    GROUP BY ID
)
SELECT yourTable.*
FROM yourTable
JOIN T ON T.ID = yourTable.ID AND T.latest_date = yourTable.Date


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TypeError:Đối tượng 'int' không hỗ trợ lập chỉ mục

  2. Làm cách nào để bạn thêm Trình điều khiển PostgreSQL làm phụ thuộc trong Maven?

  3. Các khóa chính với Apache Spark

  4. Về hiệu suất bệnh lý

  5. Cài đặt và sử dụng pgmemcache