Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

메모장

PostgreSQL 행 합치기 (Oracle WM_CONCAT 같은 기능) 본문

DB(SQL)

PostgreSQL 행 합치기 (Oracle WM_CONCAT 같은 기능)

우유한잔하죠 2016. 7. 20. 17:54

GROUP BY로 정렬한 후 집계함수를 통해 테이블을 정리하곤 하는데 일반 SUM이나 COUNT가 아니라 문자열을 합치고 싶었다.


예를 들어,


(열 이름은 무시)

위와 같은 테이블을 GROUP BY를 사용한 후 king_nm을 콤마로 구분하여




위와 같이 문자열을 합치고 싶었다.


오라클에선 WM_CONCAT이라는 함수를 통해 간단하게 구현 가능하나 PostgreSQL에서는 어떤 함수를 써야할지 감이 안잡혔다.

결국은 구글링을 통해 찾아냈다.


먼저 Oracle 일 때,


SELECT country, WM_CONCAT(king_nm)
FROM test_tb
GROUP BY country




PostgreSQL일 때,


SELECT country, ARRAY_TO_STRING(ARRAY_AGG(king_nm),',') 

FROM test_tb

GROUP BY country;




오라클과 완전히 동일하게 하려면

ARRAY_AGG(king_nm) 부분을 ARRAY_AGG(king_nm ORDER BY country)로 수정하면 결과가 완전히 똑같아진다고 한다.


'DB(SQL)' 카테고리의 다른 글

SQL 테이블 복사 및 데이터 이동  (0) 2016.08.02
Comments