Select 所有列按版本分组 - Postgres

Select all columns grouping by version - Postgres

我需要查询所有客户的 table 中的所有列,主要因素是每个客户的最新版本。

我的table:

我的查询:

SELECT DISTINCT ON(code)
    code,
    namefile,
    versioncol,
    status
FROM table_A
    ORDER BY versioncol desc

错误:

ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions LINE 1: SELECT DISTINCT ON(code)

Postgres 的错误消息试图告诉您该怎么做:

DISTINCT ON expressions must match initial ORDER BY expressions

实际上这很清楚:要使您的代码成为有效的 DISTINCT ON 查询,您只需添加 code(即 DISTINCT ON 表达式) 作为查询的第一个排序标准(即作为 初始 ORDER BY)。

SELECT DISTINCT ON(code) a.*
FROM table_A a
ORDER BY code, versioncol DESC