select distinct order by expressions must appear in select list postgresql

这个错误提示是因为在 PostgreSQL 中,如果在 SELECT 查询中使用了 ORDER BY 子句,那么 ORDER BY 中的所有表达式都必须出现在 SELECT 列表中。

例如,如果你使用以下查询:

SELECT DISTINCT name, age
FROM people
ORDER BY age;

你会收到类似于以下的错误提示:

ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list
LINE 3: ORDER BY age;

为了解决这个错误,你需要将 ORDER BY 子句中的所有表达式都添加到 SELECT 列表中。在上面的示例中,你可以将查询改为:

SELECT DISTINCT name, age
FROM people
ORDER BY name, age;

这样就可以避免出现该错误。需要注意的是,如果在 SELECT 查询中使用了聚合函数(例如 SUM、AVG、COUNT 等),那么所有在 ORDER BY 子句中使用的列名都必须是 SELECT 列表中的聚合函数或 GROUP BY 子句中的列名。否则,你将会收到类似的错误提示。

希望这些信息能够帮助你解决问题。

  •