집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 특정 열을 JSON 개체 배열로 추출하는 방법은 무엇입니까?
PostgreSQL 테이블에서 특정 열을 JSON 개체 배열로 추출
질문:
여러 열이 포함된 테이블이 있고 각 행에 대해 두 개의 열이 다른 열에 따라 그룹화된 개체 배열을 반환하려고 합니다. 그러나 결과에 각 개체에 추가 키가 포함된다는 문제가 발생합니다. 원하는 출력은 두 개의 열만 있고 세 번째 열로 그룹화된 객체 배열입니다.
PostgreSQL 10 솔루션:
PostgreSQL 10 이상의 경우 -
연산자를 사용하여 집계하기 전에 jsonb
객체에서 단일 키(또는 PostgreSQL 10의 키 배열)를 제거할 수 있습니다.
<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb(t.*) - '{id, val2}'::text[]) AS js_34 FROM tbl t GROUP BY val2;</code>
PostgreSQL 9.4 솔루션:
PostgreSQL 9.4 이상에서는 jsonb_build_object()
또는 json_build_object()
을 사용하여 교대로 키와 값으로 JSON 객체를 생성할 수 있습니다.
<code class="language-sql">SELECT val2, jsonb_agg(jsonb_build_object('val3', val3, 'val4', val4)) AS js_34 FROM tbl GROUP BY val2;</code>
PostgreSQL 9.3 솔루션:
PostgreSQL 9.3 이상의 경우 to_jsonb()
및 ROW 표현식을 사용하여 JSON 개체를 생성할 수 있습니다. ROW 표현식 대신 하위 쿼리를 사용할 수도 있습니다.
<code class="language-sql">SELECT val2, jsonb_agg(to_jsonb((val3, val4))) AS js_34 FROM tbl GROUP BY val2; SELECT val2, jsonb_agg(to_jsonb((SELECT t FROM (SELECT val3, val4) t))) AS js_34 FROM tbl GROUP BY val2;</code>
위 솔루션은 원하는 결과, 즉 세 번째 열로 그룹화된 두 개의 열만 있는 객체 배열을 반환합니다.
위 내용은 PostgreSQL에서 특정 열을 JSON 개체 배열로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!