che*_*ett 4 postgresql json aggregate-functions jsonb
我正在尝试使用 postgres 查询构建一个 JSON 对象。我正在寻找的输出类似于下面的对象。属性“xxx”和“yyy”与日期一样来自一列。
{
"xxx": [ "2018-07-26T11:42:04.514Z", "2018-07-26T11:52:04.514Z"],
"yyy": [ "2018-07-26T05:42:09.210Z", "2018-07-26T07:22:04.024Z"]
}
Run Code Online (Sandbox Code Playgroud)
我希望通过类似于下面的查询来做到这一点:
SELECT
json_object(
array_agg(name),
array_agg(json_build_array(start_date, end_date)
)
FROM my_table
Run Code Online (Sandbox Code Playgroud)
my_table 表大致如下所示:
name | start_date | end_date |
-------------------------------------------------------------
xxx | 2018-07-26T11:42:04.514Z | 2018-07-26T11:52:04.514Z |
yyy | 2018-07-26T05:42:09.210Z | 2018-07-26T07:22:04.024Z |
Run Code Online (Sandbox Code Playgroud)
但是, json_object 只接受文本数组,我似乎找不到替代方法。所以,我明白了ERROR: function json_object(text[], json[]) does not exist。谢谢阅读!
使用jsonb_build_array()和json_object_agg().
select json_object_agg(name, jsonb_build_array(start_date, end_date))
from my_table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3065 次 |
| 最近记录: |