0
我移植一些MySQL的代码给Postgres并且具有一个时间赫克转换下面一行:如何将MySQL GROUP_CONCAT更改为PostgreSQL string_agg?
GROUP_CONCAT(
DISTINCT id,':',foo,':',bar ORDER BY id
) as id,
这将导致一个逗号分隔像字符串列表:
ID:FOO :bar,id2:foo2:bar2
'DISTINCT'是为了避免重复。
我读过Postgres中GROUP_CONCAT的等价物是string_agg,但我无法弄清楚如何使它以相同的方式工作。
编辑:我可能已经差不多回答了我自己的问题。我想出了使用CONCAT的解决方案。这里的问题是,现在排序是由连接字符串,而不是由ID进行:
string_agg(DISTINCT CONCAT(
id::text, ':', foo, ':', bar, ':'
), ',') as id
如果我尝试添加“ORDER BY ID”我得到一个错误。