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

Chọn hàng mới nhất cho mỗi nhóm từ oracle

Bạn có thể sử dụng các hàm phân tích

SELECT *
  FROM (SELECT c.*,
               rank() over (partition by user_id order by ts desc) rnk
          FROM comments c)
 WHERE rnk = 1

Tùy thuộc vào cách bạn muốn xử lý các mối quan hệ (nếu có thể có hai hàng có cùng user_idts ), bạn có thể muốn sử dụng row_number hoặc dense_rank chức năng hơn là rank . rank sẽ cho phép nhiều hàng đứng đầu tiên nếu có sự ràng buộc. row_number sẽ tự ý trả về một hàng nếu có sự ràng buộc. dense_rank sẽ hoạt động giống như rank cho các hàng buộc đầu tiên nhưng sẽ coi hàng tiếp theo là hàng thứ hai thay vì hàng thứ ba giả sử hai hàng buộc đầu tiên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm hiểu ngày thuộc quý nào trong Oracle

  2. Các yếu tố kích hoạt ngăn ngừa

  3. cách sử dụng XMLImporter và FndXdfCmp trong Oracle EBS

  4. Sự cố tạo khóa nước ngoài trong Oracle

  5. Cách truy vấn cột CLOB trong Oracle