DISTINCT ON (col) col_alias – 别名不起作用

DISTINCT ON (col) col_alias – alias not working

我正在尝试 运行 这个命令:

SELECT DISTINCT ON (_id) test FROM creator_map.infos;

这是给我的错误:

ERROR: column "test" does not exist

但是根据下面的教程,test应该是一个别名

SELECT
 DISTINCT ON
 (column_1) column_1_alias,
 column_2
FROM
 tbl_name
ORDER BY
 column_1,
 column_2;

Source.

如何让不同的成为别名?

您不能给 on (...) 别名,因为 "returns" 不是表达式。这就像试图给 IN 条件一个别名 where a in (1,2,3) as foo

如有疑问,请阅读 the manual。它没有在那里提到别名。

只能在实际的select列表中为表达式定义别名,(...)不是select列表的一部分,而是[=15]的一部分=] 表达式。

我认为这只是该教程页面上措辞不当的问题,应该阅读:

select distinct on (column1) 
          column1 as column_1_alias,
          column2
from ....