[SQL] PostgreSQL을 GROUP_CONCAT 동등한?
SQLPostgreSQL을 GROUP_CONCAT 동등한?
나는 테이블을 가지고 있고 나는 연결된 필드 값과 ID 당 하나 개의 행을 끌어 싶습니다.
내 표에서, 예를 들어,이 있습니다 :
TM67 | 4 | 32556
TM67 | 9 | 98200
TM67 | 72 | 22300
TM99 | 2 | 23009
TM99 | 3 | 11200
그리고 출력하고 싶습니다 :
TM67 | 4,9,72 | 32556,98200,22300
TM99 | 2,3 | 23009,11200
MySQL의에서 나는 집계 함수 GROUP_CONCAT를 사용 할 수 있었다,하지만 여기에 작동하지 않는 것 ... PostgreSQL를위한 동등, 또는 이러한 목표를 달성하는 또 다른 방법이 있나요?
해결법
-
==============================
1.이것은 아마도 좋은 시작점 (버전 8.4+ 만)입니다 :
이것은 아마도 좋은 시작점 (버전 8.4+ 만)입니다 :
SELECT id_field, array_agg(value_field1), array_agg(value_field2) FROM data_table GROUP BY id_field
array_agg는 배열을 반환합니다,하지만 당신은 텍스트 편집 필요에 따라 (아래, 해명 참조) 것을 CAST 수 있습니다.
버전 8.4 이전에는 사용하기 전에 스스로를 정의 할 수 있습니다 :
CREATE AGGREGATE array_agg (anyelement) ( sfunc = array_append, stype = anyarray, initcond = '{}' );
(PostgreSQL의 문서에서 의역)
추가 설명 :
-
==============================
2.9.0 이후이 더 쉽게입니다 :
9.0 이후이 더 쉽게입니다 :
SELECT id, string_agg(some_column, ',') FROM the_table GROUP BY id
-
==============================
3.
SELECT array_to_string(array(SELECT a FROM b),', ');
뿐만 아니라 할 것입니다.
-
==============================
4.이 같은 시도 :
이 같은 시도 :
select field1, array_to_string(array_agg(field2), ',') from table1 group by field1;
-
==============================
5.그리고 버전은 배열 형식에서 작동합니다 :
그리고 버전은 배열 형식에서 작동합니다 :
select array_to_string( array(select distinct unnest(zip_codes) from table), ', ' );
-
==============================
6.PostgreSQL의에서 나의 제안
PostgreSQL의에서 나의 제안
SELECT cpf || ';' || nome || ';' || telefone FROM ( SELECT cpf ,nome ,STRING_AGG(CONCAT_WS( ';' , DDD_1, TELEFONE_1),';') AS telefone FROM ( SELECT DISTINCT * FROM temp_bd ORDER BY cpf DESC ) AS y GROUP BY 1,2 ) AS x
-
==============================
7.오라클 쿼리 아래 희망이 작동합니다.
오라클 쿼리 아래 희망이 작동합니다.
Select First_column,LISTAGG(second_column,',') WITHIN GROUP (ORDER BY second_column) as Sec_column, LISTAGG(third_column,',') WITHIN GROUP (ORDER BY second_column) as thrd_column FROM tablename GROUP BY first_column
from https://stackoverflow.com/questions/2560946/postgresql-group-concat-equivalent by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 왼쪽 외부는 내 왼쪽 테이블에서 모든 행을 반환하지 않습니다하세요? (0) | 2020.03.10 |
---|---|
[SQL] 당신은 MySQL의에서 WHERE 절에 별칭을 사용할 수 있습니까? (0) | 2020.03.10 |
[SQL] SQL은 - VS 어디를 가진 (0) | 2020.03.10 |
[SQL] 절 단락 평가 된 SQL인가? (0) | 2020.03.10 |
[SQL] ()는 SQL IN의 값의 순서에 의해 절을 주문 (0) | 2020.03.10 |