>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 여러 행에 걸쳐 값을 어떻게 연결할 수 있습니까?

PostgreSQL에서 여러 행에 걸쳐 값을 어떻게 연결할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-21 09:22:14207검색

How Can I Concatenate Values Across Multiple Rows in PostgreSQL?

PostgreSQL 데이터 행 값 연결

관계형 데이터베이스 작업에서는 최종 결과를 얻기 전에 데이터를 처리해야 하는 경우가 많습니다. 일반적인 작업은 공통 식별자를 기반으로 여러 행의 값을 연결하는 것입니다. PostgreSQL에서는 GROUP_CONCAT 함수가 이에 대한 간단한 솔루션을 제공합니다.

GROUP_CONCAT 기능

PostgreSQL 버전 9.0 이상에서는 GROUP_CONCAT열의 값 집합을 가져와서 단일 문자열로 연결하는 집계 함수를 도입했습니다. GROUP_CONCAT의 구문은 다음과 같습니다.

<code class="language-sql">GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])</code>

매개변수:

  • DISTINCT: (선택 사항) 결과에 중복된 값이 포함되는 것을 방지합니다.
  • 표현식: 조인할 열 또는 표현식입니다.
  • ORDER BY: (선택 사항) 값이 연결되는 순서를 지정합니다.
  • 구분자: (선택 사항) 연결된 값을 구분하는 데 사용되는 문자 또는 문자열입니다. 기본값은 쉼표(,)입니다.

"sample_data"라는 다음 테이블을 고려해 보세요.

id value
TM67 4
TM67 9
TM67 72
TM99 2
TM99 3

각 고유 "id"에 대한 "값" 열의 값을 조인하려면 다음과 같이 GROUP_CONCAT을 사용할 수 있습니다.

<code class="language-sql">SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;</code>

이 쿼리는 다음과 같은 출력을 생성합니다.

id concatenated_values
TM67 4,9,72
TM99 2,3

보시다시피 각 "id"의 값은 쉼표로 연결되어 구분되어 있습니다.

PostgreSQL 9.0의 대체 구문

PostgreSQL 버전 9.0부터 GROUP_CONCAT의 대체 구문을 사용할 수 있습니다:

<code class="language-sql">SELECT id, string_agg(value, ',') AS concatenated_values
FROM sample_data
GROUP BY id;</code>

이 구문은 위에서 설명한 GROUP_CONCAT 구문과 동일합니다.

결론

GROUP_CONCAT 또는 string_agg 함수를 사용하면 PostgreSQL에서 여러 데이터 행을 쉽게 결합할 수 있습니다. 선택하는 구문은 PostgreSQL 버전과 개인 선호도에 따라 다릅니다.

위 내용은 PostgreSQL에서 여러 행에 걸쳐 값을 어떻게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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