
Los ejemplos incluyen funciones como SUM(), AVG(), COUNT(), MAX y MIN(). Sin embargo, una cosa que notará acerca de las funciones agregadas en SQL es que funcionan bien con operaciones numéricas.
¿Pero sabías que existen funciones agregadas que funcionan con valores de cadena? En este tutorial, aprenderemos sobre estas funciones, cómo funcionan y cómo usarlas en bibliotecas.
Nota: Vale la pena señalar que la mayoría de las funciones analizadas en este artículo no forman parte del SQL estándar. Por tanto, son extensiones de diversos motores de bases de datos como PostgreSQL, SQL Server, etc.
¿Qué es una función agregada de cadenas?
Las funciones de agregación de cadenas son un conjunto de funciones que realizan una operación de agregación en un conjunto de cadenas en un grupo o fila y devuelven un único resultado.
Usamos principalmente estas funciones con la cláusula GROUP BY para agrupar filas según una columna y luego agregar las cadenas en cada grupo.
Algunas funciones comunes de agregación de cadenas incluyen:
- GROUP_CONCAT() – PostgreSQL y MySQL
- STRING_AGG – Servidor SQL
- ARRAY_AGG – PostgreSQL
- LISTAGG – Oráculo
Exploremos cada característica y lo que ofrece.
GRUPO_CONCAT()
Las bases de datos PostgreSQL y MySQL admiten la función GROUP_CONCAT(). Nos permite concatenar valores de varias líneas en una sola cadena.
Supongamos que tenemos una tabla de «Empleados» de la siguiente manera:
Clave primaria de incremento automático de ID de empleado INT,
nombreVARCHAR(50),
ApellidoVARCHAR(50),
DepartamentoVARCHAR(50)
);
Insertar valores de empleado (nombre, apellido, departamento)
('Alicia', 'Smith', 'HR'),
('Bob', 'Johnson', 'Marketing'),
('Charlie', 'Wilson', 'Finanzas'),
('David', 'Brown', 'Ventas'),
('Eva', 'Davis', 'Proyecto');
Producción:
Si queremos determinar el nombre completo de un empleado tomando el nombre y concatenándolo con el apellido, podemos usar la función GROUP_CONCAT(), como se muestra en el siguiente ejemplo:
elegir
departamento,
GROUP_CONCAT(nombre, ' ', apellido) AS nombre completo
de
empleado
Agrupar por
departamento;
En este ejemplo, usamos esta función para concatenar las cadenas en las columnas «nombre» y «apellido», y usamos una cadena vacía para agregar espacios al nombre.

Contiene una lista de empleados para cada departamento.
STRING_AGG
Esta función es similar a la función GROUP_CONCAT(), pero solo se admite en bases de datos de SQL Server.
Los ejemplos de uso son los siguientes:
elegir
departamento,
STRING_AGG(nombre, apellido, ' ') COMO nombre completo
de
empleado
Agrupar por
departamento;
Esto realizará una concatenación de cadenas en las columnas especificadas, utilizando espacios como delimitadores.
ARRAY_AGG
La función ARRAY_AGG solo está disponible en la base de datos PostgreSQL. Nos permite agregar valores en una matriz.
Los ejemplos son los siguientes:
elegir
departamento,
ARRAY_AGG(nombre) AS lista de empleados
de
empleado
Agrupar por
departamento;
Esto debería agregar los nombres de los empleados en una matriz.
lista()
La función LISTAGG() sólo está disponible en bases de datos Oracle. Nos permite concatenar valores en una sola cadena usando delimitadores específicos.
Los ejemplos son los siguientes:
SELECCIONE DEPARTAMENTO, LISTAGG (Nombre, Apellido, '') DENTRO DEL GRUPO (ORDENAR POR Nombre del empleado ASC) COMO Empleado
del personal
Agrupar por departamento;
Esto concatenará el nombre del empleado con el delimitador especificado.
en conclusión
En este tutorial, aprendimos sobre las funciones de agregación de cadenas, que nos permiten proporcionar una lista de valores de cadena y realizar operaciones en un único valor de cadena resultante.









