我试图将一些Oracle查询转换为Postgres,并遇到了 listagg .
listagg
甲骨文代码
select max(eta) eta, mso_id, listagg(carrier_name, ',') within group (order by eta) as carrier from tb_flight_schedule group by mso_id;
我发现博士后相当于 利斯塔格 是 string_agg 然后开始交换 利斯塔格 具有 字符串_agg .然而,我遇到了错误( 错误:函数字符串_agg(字符变化、未知、日期)不存在 ).我在询问中遗漏了什么吗?Postgres查询如下:
利斯塔格
string_agg
字符串_agg
select max(eta) eta, mso_id, string_agg(carrier_name, ',') WITHIN GROUP (ORDER BY eta) as carrier from tb_flight_schedule group by mso_id;
在博士后中 within group 子句仅用于有序集聚合函数,即 要求 一 order by 子句(例如,百分位函数)。可选的 订购人 子句,例如 string_agg 在函数的参数中:
within group
order by
订购人
SELECT MAX(eta) eta, mso_id, STRING_AGG(carrier_name, ',' ORDER BY eta) AS carrier FROM tb_flight_schedule GROUP BY mso_id;