>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL GROUP BY 쿼리 내에서 문자열을 연결하는 방법은 무엇입니까?

PostgreSQL GROUP BY 쿼리 내에서 문자열을 연결하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-22 08:37:12452검색

How to Concatenate Strings Within a PostgreSQL GROUP BY Query?

PostgreSQL의 GROUP BY 쿼리에서 문자열을 연결하는 방법은 무엇입니까?

질문:

PostgreSQL에서 GROUP BY 쿼리의 필드 문자열을 연결하는 방법은 무엇입니까?

예:

다음 스키마가 포함된 테이블을 생각해 보세요.

ID COMPANY_ID EMPLOYEE
1 1 Anna
2 1 Bill
3 2 Carol
4 2 Dave

목표는 COMPANY_ID을 기준으로 그룹화하고 EMPLOYEE 값을 연결하여 다음과 같은 결과를 얻는 것입니다.

COMPANY_ID EMPLOYEE
1 Anna, Bill
2 Carol, Dave

해결책:

PostgreSQL 9.0 이상:

  • string_agg(expression, delimiter) 기능 사용:
<code class="language-sql">SELECT company_id, string_agg(employee, ', ')
FROM mytable
GROUP BY company_id;</code>

PostgreSQL 8.4.x:

  • array_agg(expression) 기능을 사용하여 array_to_string():
  • 을 결합합니다.
<code class="language-sql">SELECT company_id, array_to_string(array_agg(employee), ', ')
FROM mytable
GROUP BY company_id;</code>

PostgreSQL 8.3.x 이하:

  • 문자열을 연결하는 사용자 정의 집계 함수 만들기:
<code class="language-sql">CREATE AGGREGATE textcat_all(
    basetype = text,
    sfunc = textcat,
    stype = text,
    initcond = ''
);

SELECT company_id, textcat_all(employee)
FROM mytable
GROUP BY company_id;</code>
  • 선택적으로 구분 기호 추가 등 조인 동작을 맞춤설정하는 함수를 만들 수 있습니다.

위 내용은 PostgreSQL GROUP BY 쿼리 내에서 문자열을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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