Heim >Datenbank >MySQL-Tutorial >Wie kann ich zwei Arrays in PostgreSQL komprimieren?
Arrays in PostgreSQL komprimieren
In PostgreSQL kann das Kombinieren zweier Arrays gleicher Länge zu Paaren mit verschiedenen Methoden erreicht werden.
Versionen 9.5 und höher:
Postgres In Version 9.5 wurde die Funktion array_agg mit dem Konstrukt ROWS FROM eingeführt, die eine direkte Verkettung von Arrays ermöglicht:
SELECT ARRAY[a,b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) x(a,b);
Versionen 9.4 und älter:
Vor 9.5, Es gibt zwei Ansätze:
Einfach Zippen:
Für Arrays mit der gleichen Anzahl von Elementen verwenden Sie die folgende Abfrage:
SELECT ARRAY[a,b] AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
Zippen für mehrdimensionale Arrays:
Um die komprimierten Arrays in ein mehrdimensionales Array zu konvertieren, berücksichtigen Sie das folgende benutzerdefinierte Aggregat Funktion:
CREATE AGGREGATE array_agg_mult (anyarray) ( SFUNC = array_cat , STYPE = anyarray , INITCOND = '{}' );
Verwenden Sie diese Aggregatfunktion mit der Unnest-Operation:
SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) AS ab FROM ( SELECT unnest('{a,b,c}'::text[]) AS a , unnest('{d,e,f}'::text[]) AS b ) x;
Das obige ist der detaillierte Inhalt vonWie kann ich zwei Arrays in PostgreSQL komprimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!