假设我有一个列为position的表,其中有10行值:[一、二、三、一、一、一、二、四、三、二]。如何从每个位置只有1行表中选择 *?我使用PostgreSQL,如果我使用limit 1,它只返回1个值(很明显),我需要每个位置的1个值,其中的order by create_date字段。
position
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的每个唯一值选择一行
create_date
bweufnob2#
可以使用position列的GROUP BY,然后position和create_date的ORDER BY来完成。
SELECT * FROM table_name GROUP BY position ORDER BY position, create_date;
2条答案
按热度按时间toe950271#
我如何从每个位置只有1行的表中选择 *?我使用PostgreSQL,如果我使用limit 1,它只返回1个值(显然),我需要每个位置的1个值,并具有order by create_date字段。
你可以使用DISTINCT关键字。
这将为
position
列中包含最新create_date
的每个唯一值选择一行bweufnob2#
可以使用
position
列的GROUP BY,然后position
和create_date
的ORDER BY来完成。