row_number 无法在 array_to_string 中使用(array_to_agg 函数

问题描述 投票:0回答:1

我有一个 emp 表,其中包含 name 和 name2 字段。 我需要在一行中输出。 由于我在此表中没有唯一的 id(emp_id),因此我收到如下错误:-

错误:聚合函数调用不能包含窗口函数调用 第 1 行:...选择 array_to_string(array_agg(concat(name,name2,row_number...

)

使用的查询:- 从 emp 中选择 array_to_string(array_agg(concat(name,name2,row_number() over())),'')

预期结果:-

戈帕尔---阿南莎---1拉妲---米纳克希---2

请帮助我

创建表 emp(name varchar(10), name2 varchar(10));

插入 emp 值('Gopal','Anantha');

插入 emp 值('Radha','Meenakshi');

row-number array-agg
1个回答
0
投票

我找到了解决方案 选择 array_to_string(array_agg(concat(CASE WHEN a.rn = 1 THEN 'NEW' ELSE a.name END,a.name2)),'') from ( 选择 row_number() over() rn,name,name2 from emp) a

结果是:- 新AnanthaRadhaMeenakshiKolahalanGopal

© www.soinside.com 2019 - 2024. All rights reserved.