티스토리 뷰

반응형

인포믹스를 사용하는 곳에서 group_concat 함수 기능을 필요로 하시는 경우가 있었는데요.

15버전에서 드디어 자체 기능으로 제공되네요. 과거 버전에서는 stack overflow 의 글을 참고해서 aggregate를 만들어 사용했었는데, 기본 기능으로 제공되니 유용할 듯 합니다.

 

https://pajama.tistory.com/244

 

인포믹스에서 여러 열의 데이터를 한 행으로 표시하기

인포믹스에서는 listagg나 group_concat 같은 함수가 제공되지 않습니다. 인포믹스 15버전부터는 group_concat 함수가 자체 기능으로 지원됩니다! 프로시저나 프로그램을 사용해야합니다. 아래는 stack over

pajama.tistory.com

 

아직 group_concat 용법에 대한 공식 문서는 없지만, 아래처럼 구분자만 지정하면 사용에는 크게 무리가 없어 보입니다.

아래는 기존의 글에서 사용했던 샘플 데이터로 group_concat을 실행해본 결과입니다.

$ dbaccess stores_demo -

Database selected.

> create table test (name varchar(20),nickname varchar(20));
> insert into test values ('홍길동','구름');
> insert into test values ('심청이','달');
> insert into test values ('변사또','해');
> insert into test values ('홍길동','달');
> insert into test values ('심청이','별');
> insert into test values ('변사또','물');
> select name, group_concat(nickname,',') from test group by name;



name          심청이
group_concat  달,별

name          변사또
group_concat  해,물

name          홍길동
group_concat  구름,달

 

하지만 기존에 직접 aggregate로 생성한 것과 마찬가지로, group_concat에서 지정한 대상의 리스트들을 정렬할 수 있는 옵션이 제공되지 않아 기능적으로는 차이가 없어 아쉽네요. 현재까진 구분자를 지정할 수 있다는 정도만 알 수 있네요.

 

group_concat 사용시 옵션을 주지 않았더니 아래처럼 오류가 발생하네요.

C라이브러리를 사용하는 aggregate로 보입니다.

> select group_concat(name) from test;

 9406: Cannot resolve support function for user-defined aggregate group_concat(llvc_gc_init).
Error in line 1
Near character position 8

> select * from sysprocbody where procid = 565;

data     create function informix.llvc_gc_init(lvarchar, varchar(255))
                 returns informix.smartvarchar_t
                 with (handlesnulls, not variant, parallelizable)
                 external name '(llvc_gc_init)'
                 language c ;

 

 

반응형
댓글