Postgres Group_Concat

Postgres Group Concat



MySQL에서 GROUP_CONCAT 함수는 여러 행의 값을 단일 문자열로 연결하는 집계 함수입니다. 일반적으로 관련 데이터를 결합하여 여러 행을 단일 행으로 축소하는 데 사용됩니다.

그러나 PostgreSQL은 MySQL과 달리 기본적으로 group_concat() 함수를 지원하지 않습니다. 따라서 이 자습서에서는 string_agg() 함수를 사용하여 유사한 기능을 달성할 수 있는 방법을 살펴봅니다.

PostgreSQL String_Agg 함수

PostgreSQL의 string_agg 함수를 사용하면 여러 행의 값을 단일 문자열로 연결할 수 있으며 지정된 매개변수로 구분됩니다.







함수 구문 사용법은 다음과 같습니다.



SELECT string_agg(열 이름, 구분 기호)
FROM table_name
WHERE 조건
GROUP BY grouping_columns;

다음 구문은 다음과 같이 표현됩니다.



column_name – 연결할 열이 있는 열의 이름을 지정합니다.





구분 기호 – 입력 값을 결합할 때 사용되는 구분 문자를 정의합니다.

테이블 이름 – 데이터를 포함하는 목표 테이블.



grouping_columns – 지정된 데이터를 그룹화하는 데 사용되는 컬럼을 지정합니다.

PostgreSQL String_Agg 함수 예제

함수가 어떻게 작동하는지 설명하기 위해 좀 더 실용적인 예를 들어 보겠습니다. 학생 정보가 포함된 테이블이 있다고 가정합니다. 이 테이블에는 id, name 및 subject라는 세 개의 열이 있습니다.

같은 과목에 등록한 학생들의 이름을 연결하려면 string_agg 함수를 사용할 수 있습니다.

SELECT 주제, string_agg ( 이름, ',' ) AS 학생
학생으로부터
주제별 그룹화;

주어진 쿼리를 실행하면 주제와 학생이라는 두 개의 기본 열이 포함된 결과 집합을 반환해야 합니다. 학생은 각 과목에 대한 연결된 학생 이름을 포함하며 쉼표로 구분됩니다.

메모 : string_agg 함수는 기본적으로 연결된 값을 정렬합니다. 원래 순서를 유지하기 위해 string_agg 함수 내에 ORDER BY 절을 추가할 수 있습니다.

당신은 그것을 가지고 있습니다! PostgreSQL의 group_concat() 함수가 제공하는 유사한 기능을 달성하는 간단하고 효율적인 방법입니다.

결론

이 간단하지만 효과적인 자습서에서는 PostgreSQL의 string_agg 함수를 사용하여 MySQL의 group_concat() 함수가 제공하는 유사한 기능을 구현하는 방법을 배웠습니다.