ST_UNION
ST_UNION
두 입력 GEOGRAPHY 객체가 주어지면 두 객체의 결합된 모양 집합(즉 두 모양의 합집합)을 나타내는 GEOGRAPHY 객체를 반환해요.
참고 항목:
- ST_UNION_AGG, ST_INTERSECTION, ST_DIFFERENCE, ST_SYMDIFFERENCE
본문
구문
ST_UNION( <geography_expression_1> , <geography_expression_2> )
인자
geography_expression_1
- GEOGRAPHY 객체예요.
geography_expression_2
- GEOGRAPHY 객체예요.
반환
이 함수는 GEOGRAPHY 타입의 값을 반환해요.
사용법 참고 사항
- 한 입력 객체의 어떤 정점이 다른 입력 객체의 경계(정점 제외) 위에 있으면, 합집합의 일부 점이 출력에 두 번 이상 표현될 수 있어요. 예를 들어 다음 구문에서:
SELECT ST_UNION( TO_GEOGRAPHY('POINT(1 1)'), TO_GEOGRAPHY('LINESTRING(1 0, 1 2)') );
POINT(1 1)은 LINESTRING(1 0, 1 2)의 경계 위에 있지만 그 정점은 아니에요. 이 예에서 ST_UNION은 최소 출력을 만들지 않을 수 있어요. 예상 출력은 입력 라인스트링이어야 해요.
LINESTRING(1 0, 1 2)
하지만 실제 출력은 다음과 같을 수 있어요.
GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 0,1 1,1 2))
여기서 POINT(1 1)은 점 자체로 한 번, LineString 안의 점으로 한 번, 총 두 번 출력에 표현돼요.
예제
다음 예제는 두 입력 GEOGRAPHY 객체의 합집합을 나타내는 GEOGRAPHY 객체를 반환해요.
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT';
SELECT ST_UNION(
TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'),
TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))')
) AS union_of_objects;
이 예제는 다음 출력을 생성해요.
+-------------------------------------------------------------------------------------------------------------------------------------------+
| UNION_OF_OBJECTS |
|-------------------------------------------------------------------------------------------------------------------------------------------|
| POLYGON((3 0,3 4,2 4,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,2 0,3 0),(1.5 1.500171359,1 2,1.5 2.500285599,2 2,1.5 1.500171359)) |
+-------------------------------------------------------------------------------------------------------------------------------------------+
다음 이미지는 입력 객체와 출력 객체를 나타내는 영역의 차이를 보여줘요.
| 입력 | 출력 |
|---|---|
더 알아보기
- ST_UNION_AGG — 열의 객체들 합집합 집계
- ST_INTERSECTION — 교집합
- ST_DIFFERENCE — 차집합
- ST_SYMDIFFERENCE — 대칭 차집합
- Snowflake 지리공간 함수