#포스트그레에서 ARRAY_AGG(), ARRAY_TO_STRING() 함수를 사용해서 Row(행)을 Array(배열)로 처리하고 String(문자열)로 변환하는 방법
-PostgreSQL의 ARRAY_AGG(), ARRAY_TO_STRING() 함수는 배열 관련 집계함수입니다.
#예제 테이블 데이터
#ARRAY_AGG() 함수 사용 예제
-ARRAY_AGG() 함수는 group by와 주로 쓰이며 다수의 row들의 특정칼럼값을 하나의 배열에 담고 싶을 때 사용하는 함수입니다.
-ARRAY_AGG 함수를 사용해서 주소가 같은 사람들을 그룹화해서 이름을 담는 쿼리입니다.
SELECT address, ARRAY_AGG(name)
FROM member
GROUP BY address;
#결과
-주소별로 그룹화되어 있으며 주소에 해당하는 사람들의 이름들이 한 칼럼의 배열(중괄호) 안에 다 들어가 있는 것을 확인하실 수 있습니다.
-배열에 들어가는 데이터 타입은 지정한 컬럼의 데이터 타입과 같습니다.
#distinct를 사용하여 배열의 중복데이터 값을 제거할 수 있습니다.
SELECT address, ARRAY_AGG(distinct name)
FROM member
GROUP BY address;
#결과
-위의 결과와 비교하여 서울에 사는 홍길동11의 중복된 값들이 사라진 것을 확인하실 수 있습니다.
#order by를 사용해서 배열의 순서를 지정할 수 도 있습니다.
SELECT address, ARRAY_AGG(name order by name desc)
FROM member
GROUP BY address;
#결과
-이름 내림차순으로 출력된 것을 확인하실 수 있습니다.
#ARRAY_TO_STRING('배열', '구분자') 함수 사용 예제
-ARRAY_TO_STRING() 함수는 배열을 문자열로 변환시켜 주는 함수입니다.
-첫 번째 인자는 변환시켜 줄 배열값을 넣고 두 번째 인자는 배열을 문자열로 바꿀 때 구분자로 사용하는 문자를 지정하면 됩니다.
-위에서 ARRAY_AGG() 함수를 사용해서 만든 배열을 문자열로 변환시키는 쿼리입니다.
(구분자는 콤마(,)로 지정했습니다.)
SELECT address, ARRAY_TO_STRING(ARRAY_AGG(name), ',')
FROM member
GROUP BY address;
#결과
-ARRAY_AGG() 함수 실행결과에서는 중괄호 {} 안에 데이터들이 들어있었는데 ARRAY_TO_STRING()으로 변환 후 데이터들이 문자열로 변환된 것을 확인하실 수 있습니다.
(구분자로 콤마(,)가 출력된 것을 확인하실 수 있습니다.)
'IT > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] - 포스트그레에서 SUBSTR(), SUBSTRING() 함수를 사용해서 문자열을 자르는 방법 (0) | 2023.01.13 |
---|---|
[PostgreSQL] - 포스트그레에서 SPLIT_PART() 함수를 사용해서 문자열을 자르는 방법 (0) | 2023.01.11 |
[PostgreSQL] - 포스트그레에서 CONCAT() 함수와 구분자 '||'을 사용 해서 문자열을 합쳐주는 방법 (0) | 2023.01.11 |
[PostgreSQL] - 포스트그레 첫 글자만 대문자로 변환하는 INITCAP() 함수 사용 방법 (0) | 2023.01.11 |
[PostgreSQL] - 포스트그레 null 값 처리 하는 방법 COALESCE(), NULLIF() (0) | 2023.01.09 |
댓글