我有多个列要聚合到一个新列中。我想将它们连接到一个数组中,并在它们之间用“,”分隔符。你能告诉我一些编写查询的进步吗。我的例子我希望工作简单快捷:
SELECT array_agg('[' || us.name || ',' || us.age || ',' || us.gender || ']')
FROM users as us;
我有多个列要聚合到一个新列中。我想将它们连接到一个数组中,并在它们之间用“,”分隔符。你能告诉我一些编写查询的进步吗。我的例子我希望工作简单快捷:
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