카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

ARRAY_DISTINCT

입력 ARRAY 에서 고유한 요소만 포함된 새 ARRAY를 반환합니다. 이 함수는 입력 ARRAY에 있는 모든 중복 요소를 제외합니다.

이 함수는 특정 순서로 ARRAY의 요소를 반환한다고 보장하지 않습니다.

이 함수는 NULL에 안전합니다. 즉, 중복 요소를 식별할 때 NULL을 알려진 값으로 처리한다는 의미입니다.

구문

ARRAY_DISTINCT( <array> )
Copy

인자

array

제거할 중복 요소를 포함할 수 있는 배열입니다.

반환

이 함수는 중복 요소 없이 입력 배열의 요소를 포함하는 ARRAY를 반환합니다. 예를 들어, 값 'x' 가 입력 ARRAY에 여러 번 나타나는 경우 반환되는 ARRAY에서 한 요소에만 값 'x' 가 있습니다.

입력 인자가 NULL인 경우 이 함수는 NULL을 반환합니다.

반환된 배열 내 값의 순서는 지정되지 않습니다.

사용법 노트

  • OBJECT 유형의 요소에 대해, 오브젝트가 중복으로 간주되려면 동일해야 합니다. 자세한 내용은 이 항목에 있는 를 참조하십시오.

  • 중복 요소를 식별할 때 이 함수는 NULL을 알려진 값으로 간주합니다(즉, NULL은 NULL 이외의 다른 값 X와 중복되지 않음).

다음 예제에서는 함수가 입력 ARRAY 상수 에서 중복 요소 ANULL 없이 ARRAY를 반환하는 방법을 보여줍니다.

SELECT ARRAY_DISTINCT(['A', 'A', 'B', NULL, NULL]);

+---------------------------------------------+
| ARRAY_DISTINCT(['A', 'A', 'B', NULL, NULL]) |
|---------------------------------------------|
| [                                           |
|   "A",                                      |
|   "B",                                      |
|   undefined                                 |
| ]                                           |
+---------------------------------------------+
Copy

다음 예제에서는 ARRAY 대신 NULL 을 전달하면 NULL을 반환하는 방법을 보여줍니다.

SELECT ARRAY_DISTINCT(NULL);

+----------------------+
| ARRAY_DISTINCT(NULL) |
|----------------------|
| NULL                 |
+----------------------+
Copy

다음 예제에서는 함수가 입력 ARRAY의 요소인 중복 OBJECT를 제거하는 방법을 보여줍니다. 이 예제에서는 OBJECT 상수 및 ARRAY 상수를 사용하여 OBJECT와 ARRAY를 생성합니다.

SELECT ARRAY_DISTINCT( [ {'a': 1, 'b': 2}, {'a': 1, 'b': 2}, {'a': 1, 'b': 3} ] );

+----------------------------------------------------------------------------+
| ARRAY_DISTINCT( [ {'A': 1, 'B': 2}, {'A': 1, 'B': 2}, {'A': 1, 'B': 3} ] ) |
|----------------------------------------------------------------------------|
| [                                                                          |
|   {                                                                        |
|     "a": 1,                                                                |
|     "b": 2                                                                 |
|   },                                                                       |
|   {                                                                        |
|     "a": 1,                                                                |
|     "b": 3                                                                 |
|   }                                                                        |
| ]                                                                          |
+----------------------------------------------------------------------------+
Copy

이 예제에 표시된 것처럼, b 가 다른 값(2 가 아니라 3)을 가지므로 마지막 요소는 중복으로 간주되지 않습니다.