Referencia de funciones

STRING_AGG

Equivalente en MySQL:

Une los valores de un grupo de filas en una cadena con un separador.

PostgreSQL 17.9
STRING_AGG([DISTINCT] expression, delimiter [ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]])
  • [ ]parte opcional
  • a | buna de las opciones
DISTINCT
Unir solo los valores únicos
Palabra claveOpcional
expression
Expresión de texto cuyos valores se unen; un número hay que convertirlo en texto
text
delimiter
Separador entre los valores
text
ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]
Orden de los valores; sin él, el orden es arbitrario
Opcional
sort_expression
Columna o expresión por la que se ordena
ASC | DESC
Dirección, ASC por defecto
Palabra claveOpcional
ASCDESC
NULLS FIRST | NULLS LAST
Posición de NULL, por defecto al final con ASC y al principio con DESC
Palabra claveOpcional
NULLS FIRSTNULLS LAST

Valor devuelto

Cadena (text); los NULL se omiten; NULL si todos los valores son NULL

Ejemplos

Todos los nombres separados por comas

PostgreSQL 17.9
SELECT STRING_AGG(member_name, ', ')
FROM FamilyMembers;
string_agg
Headley Quincey, Flavia Quincey, Andie Quincey, Lela Quincey, Annie Quincey, Ernest Forrest, Constance Forrest, Wednesday Addams

Nombres por estado en orden alfabético

PostgreSQL 17.9
SELECT status,
	STRING_AGG(
		member_name,
		', '
		ORDER BY member_name
	) AS members
FROM FamilyMembers
GROUP BY status
ORDER BY status;
statusmembers
daughterAnnie Quincey, Lela Quincey, Wednesday Addams
fatherErnest Forrest, Headley Quincey
motherConstance Forrest, Flavia Quincey
sonAndie Quincey

Números con ::text y estados únicos

PostgreSQL 17.9
SELECT STRING_AGG(
		member_id::text,
		','
		ORDER BY member_id
	) AS ids,
	STRING_AGG(DISTINCT status, ', ') AS statuses
FROM FamilyMembers;
idsstatuses
1,2,3,4,5,6,7,8daughter, father, mother, son

Detalles

Los valores tienen que ser texto: STRING_AGG(member_id, ',') provoca un error, mientras que STRING_AGG(member_id::text, ',') funciona.

Junto con DISTINCT, sort_expression tiene que coincidir con expression.

Véase también