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


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

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

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

Синтаксис

vector_avg(vectors) [FILTER ( WHERE cond ) ]

Аргументы

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

Возвраты

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

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

Примечания

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

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

Примеры

-- Element-wise average per category (with GROUP BY)
> SELECT category, vector_avg(embedding) AS centroid
    FROM vector_data
    GROUP BY category
    ORDER BY category;
  category: A, centroid: [3.0, 6.0, 9.0]
  category: B, centroid: [2.0, 4.0, 6.0]

-- Scalar aggregation (no GROUP BY)
> SELECT vector_avg(embedding) AS overall_centroid FROM vector_data;
  overall_centroid: [2.5, 5.0, 7.5]