«   2019/09   »
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
0
Total
10,226
관리 메뉴

메모장

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

DB(SQL)

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

수식어 우유한잔하죠 2016.07.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)로 수정하면 결과가 완전히 똑같아진다고 한다.


0 Comments
댓글쓰기 폼