Partilhar via


vector_avg função de agregação

Aplica-se a:sim Databricks Runtime 18.1 e superiores

Calcula a média elemento a elemento dos vetores num agregado. Devolve um vetor onde cada elemento é a média aritmética dos elementos correspondentes em todos os vetores de entrada.

Sintaxe

vector_avg(vectors) [FILTER ( WHERE cond ) ]

Argumentos

  • Vetores: Uma coluna de ARRAY<FLOAT> expressões que representam vetores. Todos os vetores devem ter a mesma dimensão.
  • cond: Uma expressão booleana opcional que filtra as linhas usadas para agregação.

Devoluções

Um ARRAY<FLOAT> valor com a mesma dimensão dos vetores de entrada. Cada elemento no resultado é a média dos elementos correspondentes em todos os vetores de entrada.

NULL Valores e não-vetoresNULL que contêm um NULL elemento são ignorados na agregação. Retorna NULL se todos os valores do grupo forem inválidos. Devolve um array [] vazio se todos os vetores de entrada estiverem vazios.

Notes

  • Apenas ARRAY<FLOAT> é suportado; outros tipos como ARRAY<DOUBLE> ou ARRAY<DECIMAL> gerar um erro.
  • Todos os vetores de entrada devem ter a mesma dimensão; caso contrário, a função eleva VECTOR_DIMENSION_MISMATCH.
  • Um não-vetorNULL que contém um NULL elemento é tratado como NULL.

Condições de erro

Exemplos

-- 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]