

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 배열 함수
<a name="Array_Functions"></a>

이 섹션에서는 AWS Clean Rooms에서 지원되는 SQL의 배열 함수를 설명합니다.

**Topics**
+ [ARRAY 함수](array.md)
+ [ARRAY\$1CONTAINS 함수](array_contains.md)
+ [ARRAY\$1DISTINCT 함수](array_distinct.md)
+ [ARRAY\$1EXCEPT 함수](array_except.md)
+ [ARRAY\$1INTERSECT 함수](array_intersect.md)
+ [ARRAY\$1JOIN 함수](array_join.md)
+ [ARRAY\$1REMOVE 함수](array_remove.md)
+ [ARRAY\$1UNION 함수](array_union.md)
+ [EXPLODE 함수](explode.md)
+ [FLATTEN 함수](flatten.md)

# ARRAY 함수
<a name="array"></a>

지정된 요소로 배열을 생성합니다.

## 구문
<a name="array-synopsis"></a>

```
ARRAY( [ expr1 ] [ , expr2 [ , ... ] ] )
```

## 인수
<a name="array-argument"></a>

 *expr1, expr2*   
날짜 및 시간 유형을 제외한 모든 데이터 유형의 표현식. 인수는 동일한 데이터 형식일 필요는 없습니다.

## 반환 타입
<a name="array-return-type"></a>

배열 함수는 표현식의 요소가 있는 ARRAY를 반환합니다.

## 예제
<a name="array-example"></a>

다음 예에서는 숫자 값의 배열과 다양한 데이터 형식의 배열을 보여줍니다.

```
--an array of numeric values
select array(1,50,null,100);
      array
------------------
 [1,50,null,100]
(1 row)

--an array of different data types
select array(1,'abc',true,3.14);
        array
-----------------------
 [1,"abc",true,3.14]
(1 row)
```

# ARRAY\$1CONTAINS 함수
<a name="array_contains"></a>

ARRAY\$1CONTAINS 함수를 사용하여 배열 데이터 구조에 대한 기본 멤버십 검사를 수행할 수 있습니다. ARRAY\$1CONTAINS 함수는 배열 내에 특정 값이 있는지 확인해야 할 때 유용합니다.

## 구문
<a name="array_contains-syntax"></a>

```
array_contains(array, value)
```

## 인수
<a name="array_contains-arguments"></a>

 *array*  
검색할 ARRAY입니다.

 *USD 상당*  
배열 요소와 가장 덜 일반적인 유형을 공유하는 유형의 표현식입니다.

## 반환 타입
<a name="array_contains-return-type"></a>

ARRAY\$1CONTAINS 함수는 BOOLEAN을 반환합니다.

값이 NULL인 경우 결과는 NULL입니다.

배열의 요소가 NULL인 경우 값이 다른 요소와 일치하지 않으면 결과는 NULL입니다.

## 예시
<a name="array_contains-example"></a>

다음 예제에서는 배열에 값이 `[1, 2, 3]` 포함되어 있는지 확인합니다`4`. 배열 `[1, 2, 3`]에는 값이 포함되어 있지 않으므로 array\$1contains 함수`4`는를 반환합니다`false`.

```
SELECT array_contains(array(1, 2, 3), 4)
false
```

다음 예제에서는 배열에 값이 `[1, 2, 3]` 포함되어 있는지 확인합니다`2`. 배열에는 값이 `[1, 2, 3]` 포함되어 있으므로 array\$1contains 함수`2`는를 반환합니다`true`.

```
SELECT array_contains(array(1, 2, 3), 2);
 true
```

# ARRAY\$1DISTINCT 함수
<a name="array_distinct"></a>

ARRAY\$1DISTINCT 함수를 사용하여 배열에서 중복 값을 제거할 수 있습니다. ARRAY\$1DISTINCT 함수는 배열에서 중복 항목을 제거하고 고유한 요소만 사용해야 하는 경우에 유용합니다. 이는 반복되는 값의 간섭 없이 데이터 세트에 대한 작업 또는 분석을 수행하려는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_distinct-syntax"></a>

```
array_distinct(array)
```

## 인수
<a name="array_distinct-arguments"></a>

 *array*  
ARRAY 표현식입니다.

## 반환 타입
<a name="array_distinct-return-type"></a>

ARRAY\$1DISTINCT 함수는 입력 배열의 고유한 요소만 포함하는 ARRAY를 반환합니다.

## 예시
<a name="array_distinct-example"></a>

이 예제에서 입력 배열에는의 중복 값이 `[1, 2, 3, null, 3]` 포함되어 있습니다`3`. `array_distinct` 함수는이 중복 값을 제거하고 고유한 요소가 있는 새 배열을 `3` 반환합니다`[1, 2, 3, null]`.

```
SELECT array_distinct(array(1, 2, 3, null, 3));
 [1,2,3,null]
```

이 예제에서 입력 배열에는 `2` 및의 중복 값이 `[1, 2, 2, 3, 3, 3]` 포함되어 있습니다`3`. `array_distinct` 함수는 이러한 중복을 제거하고 고유한 요소가 있는 새 배열을 반환합니다`[1, 2, 3]`.

```
SELECT array_distinct(array(1, 2, 2, 3, 3, 3))
  [1,2,3]
```

# ARRAY\$1EXCEPT 함수
<a name="array_except"></a>

ARRAY\$1EXCEPT 함수는 두 개의 배열을 인수로 받아 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소만 포함하는 새 배열을 반환합니다.

ARRAY\$1EXCEPT는 배열마다 고유한 요소를 찾아야 할 때 유용합니다. 이는 두 데이터 세트 간의 차이를 찾는 등 배열에서 세트와 유사한 작업을 수행해야 하는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_except-syntax"></a>

```
array_except(array1, array2)
```

## 인수
<a name="array_except-arguments"></a>

 *배열1*  
유사한 요소가 있는 모든 유형의 ARRAY입니다.

 *array2*  
가장 덜 일반적인 유형을 array*1의 요소와 공유하는 요소의 ARRAY*입니다.

## 반환 타입
<a name="array_except-return-type"></a>

ARRAY\$1EXCEPT 함수는 중복 없이 일치하는 유형의 ARRAY를 *array1*에 반환합니다.

## 예시
<a name="array_except-example"></a>

이 예제에서 첫 번째 배열에는 요소 1, 2 및 3이 `[1, 2, 3]` 포함됩니다. 두 번째 배열에는 요소 2, 3, 4가 `[2, 3, 4]` 포함됩니다. 이 `array_except` 함수는 두 번째 배열에도 존재하므로 첫 번째 배열에서 요소 2와 3을 제거합니다. 결과 출력은 배열 입니다`[1]`.

```
SELECT array_except(array(1, 2, 3), array(2, 3, 4))
  [1]
```

이 예제에서 첫 번째 배열에는 요소 1, 2 및 3이 `[1, 2, 3]` 포함됩니다. 두 번째 배열에는 요소 1, 3 및 5가 `[1, 3, 5]` 포함됩니다. 이 `array_except` 함수는 두 번째 배열에도 존재하므로 첫 번째 배열에서 요소 1과 3을 제거합니다. 결과 출력은 배열 입니다`[2]`.

```
SELECT array_except(array(1, 2, 3), array(1, 3, 5));
 [2]
```

# ARRAY\$1INTERSECT 함수
<a name="array_intersect"></a>

ARRAY\$1INTERSECT 함수는 두 개의 배열을 인수로 받아 두 입력 배열에 있는 요소가 포함된 새 배열을 반환합니다. 이 함수는 두 배열 간의 공통 요소를 찾아야 할 때 유용합니다. 이는 두 데이터 세트 간의 교차점을 찾는 등 배열에서 세트와 유사한 작업을 수행해야 하는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_intersect-syntax"></a>

```
array_intersect(array1, array2)
```

## 인수
<a name="array_intersect-arguments"></a>

 *array1*  
유사한 요소가 있는 모든 유형의 ARRAY입니다.

 *array2*  
가장 덜 일반적인 유형을 array1의 요소와 공유하는 요소의 ARRAY입니다.

## 반환 타입
<a name="array_intersect-return-type"></a>

ARRAY\$1INTERSECT 함수는 array1과 array2 모두에 중복 및 요소가 포함되지 않은 array1에 일치하는 유형의 ARRAY를 반환합니다.

## 예시
<a name="array_intersect-example"></a>

이 예제에서 첫 번째 배열에는 요소 1, 2 및 3이 `[1, 2, 3]` 포함됩니다. 두 번째 배열에는 요소 1, 3 및 5가 `[1, 3, 5]` 포함됩니다. ARRAY\$1INTERSECT 함수는 두 배열 사이의 공통 요소인 1과 3을 식별합니다. 결과 출력 배열은 입니다`[1, 3]`.

```
SELECT array_intersect(array(1, 2, 3), array(1, 3, 5));
 [1,3]
```

# ARRAY\$1JOIN 함수
<a name="array_join"></a>

ARRAY\$1JOIN 함수는 두 개의 인수를 사용합니다. 첫 번째 인수는 조인할 입력 배열입니다. 두 번째 인수는 배열 요소를 연결하는 데 사용할 구분자 문자열입니다. 이 함수는 문자열 배열(또는 기타 데이터 유형)을 하나의 연결된 문자열로 변환해야 할 때 유용합니다. 이는 표시 목적이나 추가 처리에 사용할 때와 같이 값 배열을 형식이 지정된 단일 문자열로 표시하려는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_join-syntax"></a>

```
array_join(array, delimiter[, nullReplacement])
```

## 인수
<a name="array_join-arguments"></a>

 *array*  
모든 ARRAY 유형이지만 해당 요소는 문자열로 해석됩니다.

 *delimiter*  
연결된 배열 요소를 분리하는 데 사용되는 STRING입니다.

 *nullReplacement*  
결과에서 NULL 값을 표현하는 데 사용되는 STRING입니다.

## 반환 타입
<a name="array_join-return-type"></a>

ARRAY\$1JOIN 함수는 배열 요소가 구분 기호로 구분되고 null 요소가 로 대체되는 STRING을 반환합니다`nullReplacement`. `nullReplacement`를 생략하면 `null` 요소가 필터링됩니다. 인수가 인 경우 `NULL`결과는 입니다`NULL`.

## 예시
<a name="array_join-example"></a>

이 예제에서 ARRAY\$1JOIN 함수는 배열을 가져`['hello', 'world']`와 구분자`' '`(스페이스 문자)를 사용하여 요소를 조인합니다. 결과 출력은 문자열 입니다`'hello world'`.

```
SELECT array_join(array('hello', 'world'), ' ');
 hello world
```

이 예제에서 ARRAY\$1JOIN 함수는 배열을 가져`['hello', null, 'world']`와 구분자`' '`(스페이스 문자)를 사용하여 요소를 조인합니다. `null` 값은 제공된 대체 문자열`','`(쉼표)로 대체됩니다. 결과 출력은 문자열 입니다`'hello , world'`.

```
SELECT array_join(array('hello', null ,'world'), ' ', ',');
 hello , world
```

# ARRAY\$1REMOVE 함수
<a name="array_remove"></a>

ARRAY\$1REMOVE 함수는 두 개의 인수를 사용합니다. 첫 번째 인수는 요소가 제거될 입력 배열입니다. 두 번째 인수는 배열에서 제거될 값입니다. 이 함수는 배열에서 특정 요소를 제거해야 하는 경우에 유용합니다. 이는 값 배열에서 데이터 정리 또는 사전 처리를 수행해야 하는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_remove-syntax"></a>

```
array_remove(array, element)
```

## 인수
<a name="array_remove-arguments"></a>

 *array*  
어레이.

 *element*  
배열 요소와 가장 흔하지 않은 유형을 공유하는 유형의 표현식입니다.

## 반환 타입
<a name="array_remove-return-type"></a>

ARRAY\$1REMOVE 함수는 배열 유형과 일치하는 결과 유형을 반환합니다. 제거할 요소가 인 경우 `NULL`결과는 입니다`NULL`.

## 예시
<a name="array_remove-example"></a>

이 예제에서 ARRAY\$1REMOVE 함수는 배열을 가져`[1, 2, 3, null, 3]`와 값 3의 모든 발생을 제거합니다. 결과 출력은 배열 입니다`[1, 2, null]`.

```
SELECT array_remove(array(1, 2, 3, null, 3), 3);
 [1,2,null]
```

# ARRAY\$1UNION 함수
<a name="array_union"></a>

ARRAY\$1UNION 함수는 두 개의 배열을 인수로 받아 두 입력 배열의 고유한 요소가 포함된 새 배열을 반환합니다. 이 함수는 두 배열을 결합하고 중복 요소를 제거해야 할 때 유용합니다. 이는 두 데이터 세트 간의 결합 찾기와 같이 배열에서 세트와 유사한 작업을 수행해야 하는 시나리오에서 유용할 수 있습니다.

## 구문
<a name="array_union-syntax"></a>

```
array_union(array1, array2)
```

## 인수
<a name="array_union-arguments"></a>

 *array1*  
어레이.

 *array2*  
array*1*과 동일한 유형의 ARRAY입니다.

## 반환 타입
<a name="array_union-return-type"></a>

ARRAY\$1UNION 함수는 배열과 동일한 유형의 ARRAY를 반환합니다.

## 예제
<a name="array_union-example"></a>

이 예제에서 첫 번째 배열에는 요소 1, 2 및 3이 `[1, 2, 3]` 포함됩니다. 두 번째 배열에는 요소 1, 3 및 5가 `[1, 3, 5]` 포함됩니다. ARRAY\$1UNION 함수는 두 배열의 고유한 요소를 결합하여 출력 배열을 생성합니다`[1, 2, 3, 5]`. T

```
SELECT array_union(array(1, 2, 3), array(1, 3, 5));
 [1,2,3,5]
```

# EXPLODE 함수
<a name="explode"></a>

EXPLODE 함수는 배열 또는 맵 열이 있는 단일 행을 여러 행으로 변환하는 데 사용되며, 여기서 각 행은 배열 또는 맵의 단일 요소에 해당합니다.

## 구문
<a name="explode-syntax"></a>

```
explode(expr)
```

## 인수
<a name="explode-arguments"></a>

 expr**  
배열 표현식 또는 맵 표현식.

## 반환 타입
<a name="explode-return-type"></a>

EXPLODE 함수는 행 세트를 반환합니다. 여기서 각 행은 입력 배열 또는 맵의 단일 요소를 나타냅니다.

출력 행의 데이터 형식은 입력 배열 또는 맵에 있는 요소의 데이터 형식에 따라 달라집니다.

## 예시
<a name="explode-example"></a>

다음 예제에서는 단일 행 배열[10, 20]을 가져와 각각 배열 요소(10 및 20) 중 하나를 포함하는 두 개의 개별 행으로 변환합니다.

```
SELECT explode(array(10, 20));
```

첫 번째 예제에서는 입력 배열이 인수로에 직접 전달되었습니다`explode()`. 이 예제에서는 입력 배열이 `=>` 구문을 사용하여 지정됩니다. 여기서 열 이름(`collection`)이 명시적으로 제공됩니다.

```
SELECT explode(array(10, 20));
```

두 접근 방식 모두 유효하며 동일한 결과를 달성하지만 단순한 배열 리터럴이 아닌 더 큰 데이터 세트에서 열을 탐색해야 하는 경우 두 번째 구문이 더 유용할 수 있습니다.

# FLATTEN 함수
<a name="flatten"></a>

FLATTEN 함수는 중첩된 배열 구조를 단일 플랫 배열로 "고정"하는 데 사용됩니다.

## 구문
<a name="flatten-syntax"></a>

```
flatten(arrayOfArrays)
```

## 인수
<a name="flatten-arguments"></a>

 *arrayOfArrays*  
배열의 배열입니다.

## 반환 타입
<a name="flatten-return-type"></a>

FLATTEN 함수는 배열을 반환합니다.

## 예제
<a name="flatten-example"></a>

이 예제에서 입력은 두 개의 내부 배열이 있는 중첩 배열이고 출력은 내부 배열의 모든 요소를 포함하는 단일 플랫 배열입니다. FLATTEN 함수는 중첩 배열을 가져`[[1, 2], [3, 4]]`와 모든 요소를 단일 배열로 결합합니다`[1, 2, 3, 4]`.

```
SELECT flatten(array(array(1, 2), array(3, 4)));
 [1,2,3,4]
```