>데이터 베이스 >MySQL 튜토리얼 >다차원 배열을 만들기 위해 PostgreSQL에서 두 개의 배열을 압축하는 방법은 무엇입니까?

다차원 배열을 만들기 위해 PostgreSQL에서 두 개의 배열을 압축하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-04 18:28:40523검색

How to Zip Two Arrays in PostgreSQL to Create a Multi-Dimensional Array?

Postgres: "zip()" 함수를 사용하여 두 배열 결합

Postgres 함수

두 배열을 단일 배열로 결합하는 방법에는 여러 가지가 있습니다. Postgres 함수를 사용하는 다차원 배열:

Postgres 9.5 이상:

  • array_agg(array 표현식): 모든 입력 배열을 하나의 더 높은 차원의 배열로 연결합니다.

Postgres 9.4:

  • 행에서 또는 unnest(): 여러 배열을 병렬로 중첩 해제하여 길이가 다른 배열을 허용합니다.

Postgres 9.3 이하:

  • zip(): 두 개의 배열을 동시에 중첩 해제하여 새로운 세트를 생성하는 사용자 정의 함수 arrays.

간단한 zip() 함수

Postgres 9.3 이하의 경우 다음 예를 고려하십시오.

SELECT ARRAY[a,b] AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;

결과:

  ab
-------
 {a,d}
 {b,e}
 {c,f}

zip()을 다차원으로 배열

결과 배열 집합을 2차원 배열로 집계하려면 array_agg_mult()라는 사용자 정의 집계 함수가 필요합니다.

CREATE AGGREGATE array_agg_mult (anyarray) (
   SFUNC    = array_cat
 , STYPE    = anyarray
 , INITCOND = '{}'
);

그런 다음 다음과 같이 사용하세요.

SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;

결과:

{{a,d},{b,e},{c,f}}

위 내용은 다차원 배열을 만들기 위해 PostgreSQL에서 두 개의 배열을 압축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.