SQL 배열 함수
SQL 배열 함수 (SQL array functions)
Druid SQL에서 배열(array)에 수행할 수 있는 연산들을 소개할게요. ARRAY 데이터 타입과 함께 쓰는 함수들이고, 대부분 멀티-밸류 문자열(multi-value string) 함수와 대응돼요.
출처: 문서
본문
Apache Druid는 두 가지 쿼리 언어를 지원해요: Druid SQL 과 native 쿼리. 이 문서는 SQL 언어를 설명해요.
이 페이지는 Druid SQL 을 사용해 배열에 수행할 수 있는 연산을 설명해요. 추가 세부사항은 ARRAY 데이터 타입 문서 를 참고하세요.
배열 함수 문서의 모든 배열 참조는 멀티-밸류 문자열 컬럼 또는 ARRAY 리터럴을 가리킬 수 있어요. 이 함수들은 멀티-밸류 문자열 함수 와 대체로 동일하지만, ARRAY 타입과 동작을 사용해요. 멀티-밸류 문자열 VARCHAR 컬럼은 MV_TO_ARRAY 로 VARCHAR ARRAY로 변환해 이 함수들과 함께 사용할 수 있고, ARRAY 타입은 ARRAY_TO_MV 로 멀티-밸류 문자열 VARCHAR로 변환할 수 있어요.
다음 표는 배열 함수를 설명해요. 배열 집계 함수에 대해 더 알아보려면 SQL 집계 함수 를 참고하세요.
| 함수 | 설명 |
| ARRAY[expr1, expr2, ...] | 제공된 표현식 인자들로 SQL ARRAY 리터럴을 구성해요. 모든 인자는 같은 타입이어야 해요. |
| ARRAY_APPEND(arr, expr) | 표현식을 배열에 추가해요. 원본 배열 타입이 결과 배열 타입을 결정해요. |
| ARRAY_CONCAT(arr1, arr2) | 두 배열을 이어 붙여요. arr1의 타입이 결과 배열 타입을 결정해요. |
| ARRAY_CONTAINS(arr, expr) | 배열이 지정된 표현식을 포함하는지 확인해요. 지정된 표현식이 스칼라 값이면 원본 배열이 그 값을 포함할 때 true를, 배열이면 원본 배열이 표현식의 모든 요소를 포함할 때 true를 반환해요. |
| ARRAY_LENGTH(arr) | 배열의 길이를 반환해요. |
| ARRAY_OFFSET(arr, long) | 0 기반 인덱스에 있는 배열 요소를 반환해요. 인덱스가 범위를 벗어나면 null 을 반환해요. |
| ARRAY_OFFSET_OF(arr, expr) | 배열에서 expr이 처음 나타나는 0 기반 인덱스를 반환해요. 일치하는 요소가 없으면 null 을 반환해요. |
| ARRAY_ORDINAL(arr, long) | 1 기반 인덱스에 있는 배열 요소를 반환해요. 인덱스가 범위를 벗어나면 null 을 반환해요. |
| ARRAY_ORDINAL_OF(arr, expr) | 배열에서 expr이 처음 나타나는 1 기반 인덱스를 반환해요. 일치하는 요소가 없으면 null 을 반환해요. |
| ARRAY_OVERLAP(arr1, arr2) | 두 배열이 공통 요소를 하나라도 가지면 true를 반환해요. NULL 값을 알려진 요소로 취급해요. |
| ARRAY_PREPEND(expr, arr) | 표현식을 배열 앞에 추가해요. 원본 배열 타입이 결과 배열 타입을 결정해요. |
| ARRAY_SLICE(arr, start, end) | 0 기반 인덱스 start(포함)부터 end(제외)까지 배열의 부분집합을 반환해요. start가 0보다 작거나, 배열 길이보다 크거나, end보다 크면 null 을 반환해요. |
| ARRAY_TO_MV(arr) | 모든 타입의 배열을 멀티-밸류 문자열 로 변환해요. |
| ARRAY_TO_STRING(arr, delimiter) | 지정된 구분자로 배열의 모든 요소를 문자열로 이어 붙여요. |
| SCALAR_IN_ARRAY(expr, arr) | 스칼라 값이 배열에 있는지 확인해요. 값이 non-null이면 false를, NULL이면 UNKNOWN 을 반환해요. 배열이 NULL이면 UNKNOWN 을 반환해요. |
| STRING_TO_ARRAY(string, delimiter) | 지정된 구분자로 문자열을 부분 문자열 배열로 분리해요. 구분자는 유효한 정규 표현식이어야 해요. |
더 알아보기 (Learn more)
- SQL 데이터 타입 —
ARRAY타입과 멀티-밸류 타입을 자세히 알아보세요. - SQL 집계 함수 — 배열 집계 함수(
ARRAY_AGG등)를 살펴보세요. - 멀티-밸류 차원 — 멀티-밸류 문자열 함수에 대해 알아보세요.