Поделиться через


vector_sum Агрегатная функция

Область применения:check помечена да Databricks Runtime 18.1 и выше

Вычисляет сумму векторов с элементом в агрегате. Возвращает вектор, в котором каждый элемент является суммой соответствующих элементов во всех входных векторах.

Синтаксис

vector_sum(vectors) [FILTER ( WHERE cond ) ]

Аргументы

  • vectors: столбец выражений ARRAY<FLOAT> , представляющих векторы. Все векторы должны иметь одинаковое измерение.
  • cond: необязательное логическое выражение, фильтрующее строки, используемые для агрегирования.

Возвраты

ARRAY<FLOAT> Значение с тем же измерением, что и входные векторы. Каждый элемент в результате — это сумма соответствующих элементов во всех входных векторах.

NULL значения иNULL не векторы, NULL содержащие элемент, игнорируются в агрегировании. Возвращает значение NULL , если все значения в группе недопустимы (NULL или неNULL векторы с NULL элементами). Возвращает пустой массив [] , если все входные векторы пусты.

Примечания

  • Поддерживается только ARRAY<FLOAT> другие типы, например ARRAY<DOUBLE> или ARRAY<DECIMAL> возникают ошибки.
  • Все входные векторы должны иметь одинаковое измерение; в противном случае функция вызывает VECTOR_DIMENSION_MISMATCH.
  • Не векторNULL , содержащий NULL элемент, обрабатывается как NULL.

Условия ошибок

Примеры

-- Element-wise sum per category (with GROUP BY)
> SELECT category, vector_sum(embedding) AS sum_vector
    FROM vector_data
    GROUP BY category
    ORDER BY category;
  category: A, sum_vector: [5.0, 7.0, 9.0]
  category: B, sum_vector: [5.0, 3.0, 5.0]

-- Scalar aggregation (without GROUP BY)
> SELECT vector_sum(embedding) AS total_sum FROM vector_data;
  total_sum: [10.0, 10.0, 14.0]