쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

ST_Collect - Amazon Redshift

ST_Collect

ST_Collect에는 두 가지 변형이 있습니다. 하나는 2개의 지오메트리를 허용하고 다른 하나는 집계 표현식을 허용합니다.

ST_Collect의 첫 번째 변형은 입력 지오메트리에서 지오메트리를 생성합니다. 입력 지오메트리의 순서는 유지됩니다. 이 변형은 다음과 같이 작동합니다.

  • 두 입력 지오메트리가 모두 점이면 2개의 점이 있는 MULTIPOINT가 반환됩니다.

  • 두 입력 지오메트리가 모두 라인스트링이면 2개의 라인스트링이 있는 MULTILINESTRING이 반환됩니다.

  • 두 입력 지오메트리가 모두 다각형이면 2개의 다각형이 있는 MULTIPOLYGON이 반환됩니다.

  • 그렇지 않으면 2개의 지오메트리가 있는 GEOMETRYCOLLECTION이 반환됩니다.

ST_Collect의 두 번째 변형은 지오메트리 열의 지오메트리에서 지오메트리를 생성합니다. 지오메트리의 결정된 반환 순서는 없습니다. 반환된 지오메트리의 순서를 지정하려면 WITHIN GROUP (ORDER BY ...) 절을 지정합니다. 이 변형은 다음과 같이 작동합니다.

  • 입력 집계 표현식의 NULL이 아닌 모든 행이 점이면 집계 표현식의 모든 점을 포함하는 다중 점이 반환됩니다.

  • 집계 표현식의 NULL이 아닌 모든 행이 라인스트링이면 집계 표현식의 모든 라인스트링을 포함하는 다중 라인스트링이 반환됩니다.

  • 집계 표현식의 NULL이 아닌 모든 행이 다각형이면 집계 표현식의 모든 다각형을 포함하는 다중 다각형이 반환됩니다.

  • 그렇지 않으면 집계 표현식의 모든 지오메트리를 포함하는 GEOMETRYCOLLECTION이 반환됩니다.

ST_Collect는 입력 지오메트리와 동일한 차원의 지오메트리를 반환합니다. 모든 입력 지오메트리의 차원이 같아야 합니다.

구문

ST_Collect(geom1, geom2)
ST_Collect(aggregate_expression) [WITHIN GROUP (ORDER BY sort_expression1 [ASC | DESC] [, sort_expression2 [ASC | DESC] ...])]

인수

geom1

GEOMETRY 데이터 형식의 값 또는 GEOMETRY 형식으로 계산되는 표현식입니다.

geom2

GEOMETRY 데이터 형식의 값 또는 GEOMETRY 형식으로 계산되는 표현식입니다.

aggregate_expression

GEOMETRY 데이터 형식의 열 또는 GEOMETRY 형식으로 계산되는 표현식입니다.

[WITHIN GROUP (ORDER BY sort_expression1 [ASC | DESC] [, sort_expression2 [ASC | DESC] ...])]

(옵션) 집계된 값의 정렬 순서를 지정하는 절입니다. ORDER BY 절에는 정렬 표현식 목록이 포함되어 있습니다. 정렬 표현식은 열 이름과 같은 쿼리 선택 목록의 유효한 정렬 표현식과 유사한 표현식입니다. 오름차순(ASC) 또는 내림차순(DESC)을 지정할 수 있습니다. 기본값은 ASC입니다.

반환 타입

하위 유형 MULTIPOINT, MULTILINESTRING, MULTIPOLYGON 또는 GEOMETRYCOLLECTIONGEOMETRY입니다.

반환된 지오메트리의 SRID(공간 참조 시스템 식별자) 값은 입력 지오메트리의 SRID 값입니다.

geom1 또는 geom2가 null이면 null이 반환됩니다.

aggregate_expression의 모든 행이 null이면 null이 반환됩니다.

geom1이 null이면 geom2의 복사본이 반환됩니다. 마찬가지로 geom2가 null이면 geom1의 복사본이 반환됩니다.

geom1geom2의 SRID 값이 다른 경우 오류가 반환됩니다.

aggregate_expression에 있는 두 지오메트리의 SRID 값이 다르면 오류가 반환됩니다.

반환된 지오메트리가 최대 크기 GEOMETRY보다 크면 오류가 반환됩니다.

geom1geom2의 차원이 다르면 오류가 반환됩니다.

aggregate_expression에 있는 두 지오메트리의 차원이 다르면 오류가 반환됩니다.

예시

다음 SQL은 2개의 지오메트리를 포함하는 지오메트리 컬렉션을 반환합니다.

SELECT ST_AsText(ST_Collect(ST_GeomFromText('LINESTRING(0 0,1 1)'), ST_GeomFromText('POLYGON((10 10,20 10,10 20,10 10))')));
st_astext ----------- GEOMETRYCOLLECTION(LINESTRING(0 0,1 1),POLYGON((10 10,20 10,10 20,10 10)))

다음 SQL은 테이블의 모든 지오메트리를 지오메트리 컬렉션으로 수집합니다.

WITH tbl(g) AS (SELECT ST_GeomFromText('POINT(1 2)', 4326) UNION ALL SELECT ST_GeomFromText('LINESTRING(0 0,10 0)', 4326) UNION ALL SELECT ST_GeomFromText('MULTIPOINT(13 4,8 5,4 4)', 4326) UNION ALL SELECT NULL::geometry UNION ALL SELECT ST_GeomFromText('POLYGON((0 0,10 0,0 10,0 0))', 4326)) SELECT ST_AsEWKT(ST_Collect(g)) FROM tbl;
st_astext ----------- SRID=4326;GEOMETRYCOLLECTION(POINT(1 2),LINESTRING(0 0,10 0),MULTIPOINT((13 4),(8 5),(4 4)),POLYGON((0 0,10 0,0 10,0 0)))

다음 SQL은 ID 열별로 그룹화되고 이 ID로 정렬된 테이블의 모든 지오메트리를 수집합니다. 이 예에서 결과 지오메트리는 다음과 같이 ID별로 그룹화됩니다.

  • id 1 – 다중 점의 점.

  • id 2 – 다중 라인스트링의 라인스트링.

  • id 3 – 지오메트리 컬렉션의 혼합 하위 유형.

  • id 4 – 다중 다각형의 다각형.

  • id 5 – null이고 결과는 null임.

WITH tbl(id, g) AS (SELECT 1, ST_GeomFromText('POINT(1 2)', 4326) UNION ALL SELECT 1, ST_GeomFromText('POINT(4 5)', 4326) UNION ALL SELECT 2, ST_GeomFromText('LINESTRING(0 0,10 0)', 4326) UNION ALL SELECT 2, ST_GeomFromText('LINESTRING(10 0,20 -5)', 4326) UNION ALL SELECT 3, ST_GeomFromText('MULTIPOINT(13 4,8 5,4 4)', 4326) UNION ALL SELECT 3, ST_GeomFromText('MULTILINESTRING((-1 -1,-2 -2),(-3 -3,-5 -5))', 4326) UNION ALL SELECT 4, ST_GeomFromText('POLYGON((0 0,10 0,0 10,0 0))', 4326) UNION ALL SELECT 4, ST_GeomFromText('POLYGON((20 20,20 30,30 20,20 20))', 4326) UNION ALL SELECT 1, NULL::geometry UNION ALL SELECT 2, NULL::geometry UNION ALL SELECT 5, NULL::geometry UNION ALL SELECT 5, NULL::geometry) SELECT id, ST_AsEWKT(ST_Collect(g)) FROM tbl GROUP BY id ORDER BY id;
id | st_asewkt ----+----------------------------------------------------------------------------------------------------------- 1 | SRID=4326;MULTIPOINT((1 2),(4 5)) 2 | SRID=4326;MULTILINESTRING((0 0,10 0),(10 0,20 -5)) 3 | SRID=4326;GEOMETRYCOLLECTION(MULTIPOINT((13 4),(8 5),(4 4)),MULTILINESTRING((-1 -1,-2 -2),(-3 -3,-5 -5))) 4 | SRID=4326;MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((20 20,20 30,30 20,20 20))) 5 |

다음 SQL은 테이블의 모든 지오메트리를 지오메트리 컬렉션에 수집합니다. 결과는 id의 내림차순으로 정렬된 다음 최소 및 최대 x 좌표에 따라 사전순으로 정렬됩니다.

WITH tbl(id, g) AS ( SELECT 1, ST_GeomFromText('POINT(4 5)', 4326) UNION ALL SELECT 1, ST_GeomFromText('POINT(1 2)', 4326) UNION ALL SELECT 2, ST_GeomFromText('LINESTRING(10 0,20 -5)', 4326) UNION ALL SELECT 2, ST_GeomFromText('LINESTRING(0 0,10 0)', 4326) UNION ALL SELECT 3, ST_GeomFromText('MULTIPOINT(13 4,8 5,4 4)', 4326) UNION ALL SELECT 3, ST_GeomFromText('MULTILINESTRING((-1 -1,-2 -2),(-3 -3,-5 -5))', 4326) UNION ALL SELECT 4, ST_GeomFromText('POLYGON((20 20,20 30,30 20,20 20))', 4326) UNION ALL SELECT 4, ST_GeomFromText('POLYGON((0 0,10 0,0 10,0 0))', 4326) UNION ALL SELECT 1, NULL::geometry UNION ALL SELECT 2, NULL::geometry UNION ALL SELECT 5, NULL::geometry UNION ALL SELECT 5, NULL::geometry) SELECT ST_AsEWKT(ST_Collect(g) WITHIN GROUP (ORDER BY id DESC, ST_XMin(g), ST_XMax(g))) FROM tbl;
st_asewkt --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SRID=4326;GEOMETRYCOLLECTION(POLYGON((0 0,10 0,0 10,0 0)),POLYGON((20 20,20 30,30 20,20 20)),MULTILINESTRING((-1 -1,-2 -2),(-3 -3,-5 -5)),MULTIPOINT((13 4),(8 5),(4 4)),LINESTRING(0 0,10 0),LINESTRING(10 0,20 -5),POINT(1 2),POINT(4 5)
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.