postgresql 排序后去重
在PostgreSQL中,可以使用DISTINCT ON表达式来实现排序后去重。DISTINCT ON会对每组指定的列保留第一条记录。
假设有一个名为my_table的表,它有两个字段category和timestamp,你想要去重并且每个category对应最新的timestamp记录。
SELECT DISTINCT ON (category) *
FROM my_table
ORDER BY category, timestamp DESC;
在这个查询中,DISTINCT ON (category)告诉PostgreSQL对每个category值保留第一条记录,而ORDER BY category, timestamp DESC确保了每个category的第一条记录是该类别中最新的记录。