Array_agg function



我有多列要聚合到一个新列中。我想将它们连接在一个数组中,并在它们之间使用","分隔符。你能告诉我写查询的一些进展吗?我的例子我想工作简单快捷:

SELECT array_agg('[' || us.name || ',' || us.age || ',' || us.gender || ']') 
FROM users as us;

如果要创建JSON数组,请使用JSON函数:

select jsonb_agg(concat_ws(',', us.name, us.age, us.gender))
from users as us;

如果您想要真正的JSON对象(使用键/值对(,而不是数组中逗号分隔的字符串:

select jsonb_agg(to_jsonb(u))
from (
select name, age, gender
from users
) u

另一种选择是创建嵌套数组:

select jsonb_agg(to_jsonb(array[name, age, gender]))
from users

最新更新