> 데이터 베이스 > MySQL 튜토리얼 > PostgreSQL에서 특정 열을 JSON 개체 배열로 추출하는 방법은 무엇입니까?

PostgreSQL에서 특정 열을 JSON 개체 배열로 추출하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-14 21:57:43
원래의
824명이 탐색했습니다.

How to Extract Specific Columns as a JSON Array of Objects in PostgreSQL?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿