Dela via


vector_avg aggregatfunktion

Gäller för:check markerat ja Databricks Runtime 18.1 och senare

Beräknar elementmässigt medelvärde av vektorer i en aggregering. Returnerar en vektor där varje element är det aritmetiska medelvärdet för motsvarande element i alla indatavektorer.

Syntax

vector_avg(vectors) [FILTER ( WHERE cond ) ]

Arguments

  • vektorer: En kolumn med ARRAY<FLOAT> uttryck som representerar vektorer. Alla vektorer måste ha samma dimension.
  • cond: Ett valfritt booleskt uttryck som filtrerar de rader som används för aggregering.

Retur

Ett ARRAY<FLOAT> värde med samma dimension som indatavektorerna. Varje element i resultatet är medelvärdet av motsvarande element i alla indatavektorer.

NULL värden och icke-vektorerNULL som innehåller ett NULL element ignoreras i aggregeringen. Returnerar NULL om alla värden i gruppen är ogiltiga. Returnerar en tom matris [] om alla indatavektorer är tomma.

Notes

  • Endast ARRAY<FLOAT> stöds, andra typer, till exempel ARRAY<DOUBLE> eller ARRAY<DECIMAL> skapar ett fel.
  • Alla indatavektorer måste ha samma dimension. annars höjer funktionen VECTOR_DIMENSION_MISMATCH.
  • En icke-vektorNULL som innehåller ett NULL element behandlas som NULL.

Feltillstånd

Exempel

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