PostgreSQL은 배열을 효율적으로 결합할 수 있는 다양한 옵션을 제공하여 복잡한 데이터 조작이 가능합니다.
길이가 같은 두 배열을 결합하려면 ARRAY[] 생성자와 함께 unnest() 함수를 활용할 수 있습니다.
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}
쌍 요소를 집계하는 경우 다차원 배열로 PostgreSQL은 사용자 정의 집계 함수 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}}
또는, zip2() 함수는 래퍼로 생성될 수 있습니다. array_agg_mult():
CREATE OR REPLACE FUNCTION zip2(anyarray, anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) FROM (SELECT unnest() AS a, unnest() AS b) x; $func$
사용:
SELECT zip2('{a,b,c}'::text[], '{d,e,f}'::text[]);
결과:
{{a,d},{b,e},{c,f}}
Postgres 9.5 이상에서는 array_agg(array 표현식) 함수는 배열을 다차원 배열로 직접 결합할 수 있어 사용자 정의 집계 함수에 비해 더 효율적인 솔루션을 제공합니다. 사용법은 array_agg_mult() 함수와 유사합니다.
위 내용은 PostgreSQL에서 배열을 다차원 배열로 효율적으로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!