JDe*_*Dev 1 sql database arrays postgresql json
我有一个 PostgreSQL 数据库表,内容如下:
id | person_key | age | gender | email
1 | 1 | 25 | M | test@mail.com
2 | 1 | 25 | M | test_2@gmail.com
3 | 2 | 35 | F | sample_2@gmail.com
4 | 1 | 25 | M | test_3@gmail.com
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种获取 json 输出的方法,如下所示:
person_key. | json
1 | {'age':25, 'gender':'M', 'email':['test@mail.com','test_2@gmail.com','test_3@gmail.com' ]}
2 | {'age':35, 'gender':'F', 'email':['sample_2@gmail.com' ]}
Run Code Online (Sandbox Code Playgroud)
您可以使用聚合和 Postgres json 函数:
select
person_key,
json_build_object(
'age', age,
'gender', gender,
'email', json_agg(email order by id)
) js
from mytable
group by person_key, age, gender
order by person_key
Run Code Online (Sandbox Code Playgroud)
person_key | js
---------: | :------------------------------------------------- -----------------------------------------------
1 | {“年龄”:25,“性别”:“M”,“电子邮件”:[“test@mail.com”,“test_2@gmail.com”,“test_3@gmail.com”]}
2 | {“年龄”:35,“性别”:“F”,“电子邮件”:[“sample_2@gmail.com”]}
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |