database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9568 게시물 읽기
No. 9568
데이터 가로 정렬
작성자
초보
작성일
2015-07-08 22:04
조회수
9,297

NUM NAME

======================

1 홍길동1

1 홍길순1

2 홍길동2

2 홍길순2

2 홍길자2

. .

. .

3 홍길동3

======================

위에 데이터를 아래와 같이 정렬을 하고 싶습니다.

 

1 홍길동1,홍길순1

2 홍길동2,홍길순2 ,홍길자2 ..

3 홍길동3

 

 

PostgreSQL에서는 어떤식으로 하는지 검색해도 안나오구

도무지 감이 안잡히네요 고수님들 부탁드립니다... ㅠㅠ

 

쉽게 풀어서 부탁드립니다. ㅜㅜ

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

이렇게 해보시지요.

 

with a as (select 1 num, '홍길동1' cname union all
select 1 num, '홍길순1' union all
select 2 num, '홍길동2' union all
select 2 num, '홍길순2' union all
select 2 num, '홍길자2' union all
select 3 num, '홍길자1')
select num, string_agg(cname, ' ' order by cname) 
from a 
group by num;
이성필(splee75)님이 2015-07-09 10:11에 작성한 댓글입니다.

묻는 질문에 대한 답으로 정확한 것인지 모르겠네요.. 일단 한두가지 방법이 생각나네요.

1. String aggregate 함수 이용.

쉽게 말하면, 같은 Group안에 있는 문자열을 서로 더하는 겁니다.

예) select num_id, string_agg( name, "," ) as names from sample_table group by num_id

num_id names

----------------------------------------------------------------

1 홍길동1, 홍길순1

2 홍길동2, 홍길순2,

.....

2. Array 이용

위와 비슷하게, PostgreSQL은 array가 지원되어, 이럴 경우 매우 편하게 이용할 수 있습니다.

예) select num_id, array_agg(name) as names from sample_table group by num_id

num_id names

----------------------------------------------------------------

1 { 홍길동1, 홍길순1 }

2 { 홍길동2, 홍길순2, ..... }

결과 column인 names는 array 함수를 이용하면 일반 row와 유사하게 접근이 가능합니다.

 

아싸가오리님이 2015-07-10 19:39에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9572undefined symbol에 관해서 [5]
상록수
2015-07-13
9652
9571text 구조체 파라미터 메모리 할당 후 반환 방법 [1]
초보DBA
2015-07-13
9134
9570PL단 C단 형변환.. [1]
초보DBA
2015-07-09
8887
9568데이터 가로 정렬 [2]
초보
2015-07-08
9297
9567PG_GETARG_INT32 관련.. [5]
초보DBA
2015-07-08
9119
9566에러 함수 관련... [2]
초보DBA
2015-07-07
10593
9565유저 확인방법.. [2]
초보DBA
2015-07-07
9033
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다