我正在尝试在postgresql
中完成以下操作我的表结构是
postgres=# select * from t_test;
var1 | var2 | var3
------+------+------
1 | A | v1
1 | B | v2
2 | A | u1
我希望输出按var1分组。 var2和var3必须成为json键值。像这样:
var1 | result
------+------------
1 | { A: v1, B: v2 }
2 | { A: u1 }
我无法从文档中清楚地理解to_json函数。有人可以帮忙吗?
答案 0 :(得分:0)
他们说select to_json(table_name.*)
可能有效
答案 1 :(得分:0)
在9.3(标记为)中进行字符串聚合:
select v1, format('{%s}',string_agg(format('"%s":"%s"',v2,v3), ','))::json
from t
group by v1
;
v1 | format
----+---------------------
1 | {"A":"v1","B":"v2"}
2 | {"A":"u1"}