分析関数を使用できます
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番目であると見なされる行の場合。