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_id và ts ), 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.