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

chọn mục nhập gần đây nhất

Các đề xuất khác là đúng nhưng giải pháp nhỏ gọn nhất và nhanh nhất rất có thể xảy ra khi bạn sử dụng Hàm phân tích FIRST_VALUE và LAST_VALUE

SELECT DISTINCT
   FIRST_VALUE(LOCATION_ID) OVER (PARTITION BY PERSON_ID ORDER BY THE_DATE 
             ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS LOCATION_ID, 
   PERSON_ID, 
   MAX(THE_DATE) OVER (PARTITION BY PERSON_ID) AS LAST_DATE
FROM YOUR_TABLE;

Những người khác thích

SELECT 
   MAX(LOCATION_ID) KEEP (DENSE_RANK FIRST ORDER BY DATE) as LOCATION, 
   PERSON_ID, 
   MAX(DATE) as LAST_DATE
FROM YOUR_TABLE
GROUP BY PERSON_ID;

điều này cũng tương tự, nhưng tôi không quá quen thuộc với mệnh đề này. Xem tổng hợp chức năng KEEP



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhẹ trong một vỏ sò

  2. không có ocijdbc12 trong java.library.path

  3. Сtạo máy ảo với hộp ảo Oracle VM

  4. SQL (oracle) để so sánh hai danh sách

  5. Để thay đổi kiểu dữ liệu cột từ clob thành xmltype