postgresql Select * from table_name where distinct

bxgwgixi  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(2)|浏览(152)

假设我有一个列为position的表,其中有10行值:[一、二、三、一、一、一、二、四、三、二]。
如何从每个位置只有1行表中选择 *?
我使用PostgreSQL,如果我使用limit 1,它只返回1个值(很明显),我需要每个位置的1个值,其中的order by create_date字段。

toe95027

toe950271#

我如何从每个位置只有1行的表中选择 *?我使用PostgreSQL,如果我使用limit 1,它只返回1个值(显然),我需要每个位置的1个值,并具有order by create_date字段。
你可以使用DISTINCT关键字。

SELECT DISTINCT ON (position) *
FROM your_table
ORDER BY position, create_date DESC;

这将为position列中包含最新create_date的每个唯一值选择一行

bweufnob

bweufnob2#

可以使用position列的GROUP BY,然后positioncreate_dateORDER BY来完成。

SELECT * 
FROM table_name 
GROUP BY position 
ORDER BY position, create_date;

相关问题