如何在PostgreSQL中连接jsonb_array_elements()提供的字符串?

时间:2019-11-28 12:39:33

标签: sql postgresql

我需要将jsonb_array_elements()返回的字符串连接为结果中的单个列。

我正在使用PostgreSQL v.12.1

我的SQL:

SELECT
  name as name,
  jsonb_array_elements(payload -> 'pr' -> 'act') -> 'tags' -> 'Content' ->> 0 AS ws
FROM
  data

当前产生此结果:

name   ws   
  A       1
  A       2
  A       3
  B       4

我想得到这个结果:

name   ws
 A       1, 2, 3
 B       4

1 个答案:

答案 0 :(得分:0)

一种方法是用外部查询包装查询:

select name, string_agg(ws, ', ') from (<your query here>) foo group by name

另一种方法是将函数调用从选择列表移至从列表(作为横向联接,但LATERAL在函数调用中是隐式的),这应使其可用于聚合。您没有提供带有示例数据的CREATE TABLE或INSERT语句,并且我不想发布无法测试的内容,因此未提供此类示例。