Delen via


vector_avg aggregerende functie

Van toepassing op:controleren gemarkeerd als Ja Databricks Runtime 18.1 en hoger

Berekent het elementgewijze gemiddelde van vectoren in een aggregaties. Retourneert een vector waarbij elk element het rekenkundige gemiddelde is van de bijbehorende elementen in alle invoervectoren.

Syntaxis

vector_avg(vectors) [FILTER ( WHERE cond ) ]

Argumenten

  • vectoren: een kolom met ARRAY<FLOAT> expressies die vectoren vertegenwoordigen. Alle vectoren moeten dezelfde dimensie hebben.
  • cond: Een optionele Booleaanse expressie die de rijen filtert die worden gebruikt voor aggregatie.

Retouren

Een ARRAY<FLOAT> waarde met dezelfde dimensie als de invoervectoren. Elk element in het resultaat is het gemiddelde van de bijbehorende elementen voor alle invoervectoren.

NULL waarden en niet-vectorenNULL die een NULL element bevatten, worden genegeerd in de aggregatie. Retourneert NULL als alle waarden in de groep ongeldig zijn. Retourneert een lege matrix [] als alle invoervectoren leeg zijn.

Aantekeningen

  • Alleen ARRAY<FLOAT> wordt ondersteund; andere typen, zoals ARRAY<DOUBLE> of ARRAY<DECIMAL> genereren van een fout.
  • Alle invoervectoren moeten dezelfde dimensie hebben; anders wordt de functie VECTOR_DIMENSION_MISMATCH.
  • Een niet-vectorNULL die een NULL element bevat, wordt behandeld als NULL.

Foutvoorwaarden

Examples

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