Vector (Array) -Zusatz in Postgres

Ich habe eine Spalte mitnumeric[] -Werte, die alle die gleiche Größe haben. Ich würde gerne ihren elementweisen Durchschnitt nehmen. Damit meine ich, dass der Durchschnitt von

{1, 2, 3}, {-1, -2, -3}, and {3, 3, 3}

sollte sein{1, 1, 1}. Interessant ist auch, wie man diese Elemente zusammenfasst, obwohl ich erwarte, dass jede Lösung für die eine eine Lösung für die andere sein wird.

(Hinweis: Die Länge der Arrays ist innerhalb einer einzelnen Tabelle festgelegt, kann jedoch zwischen den Tabellen variieren. Daher benötige ich eine Lösung, die keine bestimmte Länge annimmt.)

Meine anfängliche Vermutung ist, dass ich @ verwenden sollunnest irgendwie, seitunnest auf ein @ angewendnumeric[]ie Spalte @ fasst alle Arrays zusammen. Ich würde also gerne glauben, dass es eine gute Möglichkeit gibt, dies mit einer Art Fensterfunktion zu nutzen. +group by, um die einzelnen Komponenten jedes Arrays auszuwählen und zu summieren.

-- EXAMPLE DATA
CREATE TABLE A
  (vector numeric[])
;

INSERT INTO A
  VALUES
    ('{1, 2, 3}'::numeric[])
    ,('{-1, -2, -3}'::numeric[])
    ,('{3, 3, 3}'::numeric[])
;

Antworten auf die Frage(3)

Ihre Antwort auf die Frage