分析関数を使用できます
SELECT *
FROM (SELECT c.*,
rank() over (partition by user_id order by ts desc) rnk
FROM comments c)
WHERE rnk = 1
同点の処理方法によって異なります(同じ user_id を持つ2つの行が存在する可能性がある場合) およびts )、 row_numberを使用することをお勧めします またはdense_rank ランクではなく関数 。 ランクコード> 同点の場合、複数の行を最初にすることができます。 row_number 同点の場合、任意に1行を返します。 density_rank ランクのように動作します 最初に同点であるが、2つの行が最初に同点であると仮定すると、次の行は3番目ではなく2番目であると見なされる行の場合。