Anda dapat menggunakan fungsi analitik
SELECT *
FROM (SELECT c.*,
rank() over (partition by user_id order by ts desc) rnk
FROM comments c)
WHERE rnk = 1
Bergantung pada bagaimana Anda ingin menangani ikatan (jika bisa ada dua baris dengan user_id yang sama dan ts ), Anda mungkin ingin menggunakan row_number atau dense_rank fungsi daripada rank . rank akan memungkinkan beberapa baris menjadi yang pertama jika ada seri. row_number akan secara sewenang-wenang mengembalikan satu baris jika ada seri. dense_rank akan berperilaku seperti rank untuk baris yang pertama diikat tetapi akan menganggap baris berikutnya sebagai yang kedua daripada ketiga dengan asumsi dua baris terikat untuk yang pertama.