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!