VECTOR_MAX
VECTOR_MAX
집계에서 벡터들의 요소별(element-wise) 최댓값을 계산하는 함수예요. 각 요소가 모든 입력 벡터의 대응 요소 중 최댓값인 벡터를 반환해요.
본문
VECTOR_MAX( <vector_column> )
<vector_column> — VECTOR 값이 담긴 컬럼이에요. 컬럼의 모든 벡터는 같은 요소 타입과 차원을 가져야 해요.
입력 벡터와 같은 요소 타입·차원의 VECTOR 값을 반환해요. 결과 벡터의 각 요소는 모든 입력 벡터의 대응 요소 중 최댓값이에요.
사용 메모
- 집계에서 NULL 값은 무시돼요.
- 그룹의 모든 값이 NULL이면 함수는 NULL을 반환해요.
- 컬럼의 모든 입력 벡터는 같은 차원과 요소 타입이어야 해요.
- 벡터 함수는 부동소수점 정밀도를 줄일 수 있게 최적화되어 있어요. 이 함수의 결과는 최대
1e-4의 오차 한계가 있어요.
예시 — 카테고리별 요소별 최댓값 계산:
CREATE OR REPLACE TABLE vector_data (
id INT,
category VARCHAR,
embedding VECTOR(FLOAT, 3)
);
INSERT INTO vector_data
SELECT 1, 'A', [1.5, 8.0, 3.2]::VECTOR(FLOAT, 3)
UNION ALL SELECT 2, 'A', [4.1, 2.5, 6.7]::VECTOR(FLOAT, 3)
UNION ALL SELECT 3, 'B', [2.0, 1.0, 4.0]::VECTOR(FLOAT, 3)
UNION ALL SELECT 4, 'B', [3.0, 2.0, 1.0]::VECTOR(FLOAT, 3);
SELECT category, VECTOR_MAX(embedding) AS max_vector
FROM vector_data
GROUP BY category
ORDER BY category;
+----------+------------------+
| CATEGORY | MAX_VECTOR |
+----------+------------------+
| A | [4.1, 8.0, 6.7] |
| B | [3.0, 2.0, 4.0] |
+----------+------------------+
GROUP BY 없는 스칼라 집계도 가능해요.
SELECT VECTOR_MAX(embedding) AS overall_max
FROM vector_data;
+------------------+
| OVERALL_MAX |
+------------------+
| [4.1, 8.0, 6.7] |
+------------------+