我正在尝试运行此命令:
SELECT DISTINCT ON (_id) test FROM creator_map.infos;
这给了我错误:
错误:列“测试”不存在
但根据以下教程,test
应该是别名
SELECT
DISTINCT ON
(column_1) column_1_alias,
column_2
FROM
tbl_name
ORDER BY
column_1,
column_2;
来源。
如何让 distinct 成为别名?
我正在尝试运行此命令:
SELECT DISTINCT ON (_id) test FROM creator_map.infos;
这给了我错误:
错误:列“测试”不存在
但根据以下教程,test
应该是别名
SELECT
DISTINCT ON
(column_1) column_1_alias,
column_2
FROM
tbl_name
ORDER BY
column_1,
column_2;
来源。
如何让 distinct 成为别名?
您不能给出on (...)
别名,因为它不是“返回”名称的表达式。这就像试图给一个IN
条件一个别名where a in (1,2,3) as foo
如有疑问,请阅读手册。它没有提到那里的别名。
只能为实际选择列表中的表达式定义别名,并且(...)
不是选择列表的一部分,而是distinct on
表达式的一部分。
我认为这只是该教程页面上措辞不当的问题,应该阅读:
select distinct on (column1)
column1 as column_1_alias,
column2
from ....