【问题标题】:Select all columns grouping by version - Postgres选择按版本分组的所有列 - Postgres
【发布时间】:2020-07-22 08:55:30
【问题描述】:

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

我的桌子:

我的查询:

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

错误:

错误:SELECT DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式 第 1 行:选择 DISTINCT ON(代码)

【问题讨论】:

    标签: sql node.js postgresql greatest-n-per-group knex.js


    【解决方案1】:

    Postgres 的错误信息试图告诉你该怎么做:

    DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式

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

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

    【讨论】:

    • 如何在 knex 的语法中构建这个查询?
    猜你喜欢
    • 1970-01-01
    • 2014-09-24
    • 2016-05-04
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多