arraysOverlap
arraysOverlap
arraysOverlap 함수는 같은 요소 타입을 가진 두 배열이 서로 하나 이상의 값을 공유하는지 검사하는 함수예요.
출처: 문서
본문
두 배열이 같은 요소 타입을 가지고 하나 이상의 값을 공유하면 true를 반환해요.
시그니처 (Signature)
ARRAYS_OVERLAP(array1, array2)
Pinot은 ARRAYSOVERLAP 표기법도 함께 지원해요.
지원 타입 (Supported Types)
| Array Type | Return Type |
|---|---|
INT[] |
BOOLEAN |
LONG[] |
BOOLEAN |
FLOAT[] |
BOOLEAN |
DOUBLE[] |
BOOLEAN |
BIG_DECIMAL[] |
BOOLEAN |
STRING[] |
BOOLEAN |
BYTES[] |
BOOLEAN |
두 인자는 모두 같은 배열 타입이어야 해요.
사용 예시 (Usage Examples)
다음 예시는 Pinot의 통합 테스트에서 가져온 것이에요.
SELECT ARRAYS_OVERLAP(ARRAY[1, 2], ARRAY[3, 2]) AS hasOverlap
true를 반환해요.
SELECT ARRAYS_OVERLAP(ARRAY['a', 'b'], ARRAY['x', 'y']) AS hasOverlap
false를 반환해요.
SELECT COUNT(*)
FROM myTable
WHERE ARRAYS_OVERLAP(longArrayCol, ARRAY[CAST(2 AS BIGINT), CAST(10 AS BIGINT)])
longArrayCol이 필터 배열과 하나 이상의 값을 공유하는 모든 행을 반환해요.
다중 값 BYTES 컬럼에는 배열 안에 SQL 바이너리 리터럴을 사용해요:
SELECT id, byte_values
FROM events
WHERE ARRAYS_OVERLAP(byte_values, ARRAY[X'0102', X'CAFE'])
저장된 컬럼은 Pinot 스키마에서 "dataType": "BYTES"와 "singleValueField": false를 사용해요. 쿼리 응답 값은 16진수 문자열이에요.