본문 바로가기
DBMS/PostgreSQL

[PostgreSQL] 배열 함수 및 배열을 string(문자열)로 변경하기 (ft. array_agg, array_to_string)

by 썸머워즈 2021. 7. 24.
반응형

PostgreSQL에서 제공하는 Array 관련 집계 함수 array_aggarray_to_string에 대해 알아보자.

 

집계함수이다 보니 max, min, sum 처럼 당연히 group by 와 자주 쓰이며, 마찬가지로 함수안에 배열로 뽑을 컬럼만 지정해주면된다.

 

실제 코드를 통해 접해보자.

우선 아래와 같은 데이터를 가진 테이블(mine)이 존재한다는 가정하에 진행하도록 하겠다.


1. row를 array로 출력 (array_agg)

select dept, array_agg(name)
from mine
group by dept

▷결과

dept | name
code | {han,john,kim,jo,ho,ko}

 

array_agg 함수를 쓰게되면 위 결과처럼 중괄호로 감싸진 배열형식으로 출력된다.

그리고 출력되는 컬럼의 타입이 배열로 잡히는데

 

그냥 DB자체내에서 사용할때는 상관은 없지만

 

서버와 연결해서 사용하게되면 배열형식보다는 저 상태에서 중괄호를 제거하고 문자열로 주고받는게 더 간편할 수 있다.

그때 사용되는게 array_to_string 이다.

 

2. array를 string으로 출력 (array_to_string)

select dept, array_to_string(array_agg(name), ',')
from mine
group by dept

▷결과

dept | name
code | han,john,kim,jo,ho,ko

 

array_to_string 은 함수 이름 그대로 배열을 문자열로 변경시켜주는 함수인데,

위 코드를 보면 알겠지만 배열을 콤마(,)로 구분지어 문자열로 만들어 준다는 의미이다.

구분자는 사실 아무거나 써도 상관은없을거 같으나 대부분 콤마로 사용하니 예제도 콤마이다.

 

이렇게 되면 출력되는 컬럼의 타입은 문자열로 잡히며

서버에서 사용하기 편하게 가지고 다닐수 있다.

반응형


댓글

TOP