PostgreSQL

Cómo utilizar la función ARRAY_AGG de PostgreSQL?

Cómo utilizar la función ARRAY_AGG de PostgreSQL?
El método agregado ARRAY_AGG () es uno de los métodos utilizados en PostgreSQL, que toma varios valores de entrada y los concatena en una matriz, incluidos los valores NULL. Devuelve una matriz con cada valor del grupo de entrada como parte. Para ordenar el conjunto de resultados a través de la función ARRAY_AGG de PostgreSQL, utilizará la frase ORDER BY. También puede utilizar la cláusula WHERE cuando sea necesario.

Para comprender el método agregado ARRAY_Agg (), debe realizar varios ejemplos. Para ello, abra el shell de línea de comandos de PostgreSQL. Si desea encender el otro servidor, hágalo proporcionando su nombre. De lo contrario, deje el espacio vacío y presione el botón Enter para saltar a la base de datos. Si desea utilizar la base de datos predeterminada, e.gramo., Postgres, luego déjelo como está y presione Enter; de lo contrario, escriba el nombre de una base de datos, e.gramo., "Prueba", como se muestra en la imagen siguiente. Si desea utilizar otro puerto, escríbalo; de lo contrario, déjelo como está y toque Intro para continuar. Le pedirá que agregue el nombre de usuario si desea cambiar a otro nombre de usuario. Agregue el nombre de usuario si lo desea; de lo contrario, simplemente presione "Enter". Al final, debe proporcionar su contraseña de usuario actual para comenzar a usar la línea de comandos con ese usuario en particular como se muestra a continuación. Después de ingresar correctamente toda la información requerida, está listo para comenzar.

Uso de ARRAY_AGG en una sola columna:

Considere la tabla "persona" en la base de datos "prueba" que tiene tres columnas; "Id", "nombre" y "edad". La columna "id" tiene los identificadores de todas las personas. Mientras que el campo 'nombre' contiene los nombres de las personas y la columna 'edad' las edades de todas las personas.

>> SELECCIONAR * DE la persona;

Dependiendo de la tabla de gastos generales, tenemos que aplicar el método agregado ARRAY_AGG para devolver la lista de matriz de todos los nombres de la tabla a través de la columna "nombre". Con esto, debe usar la función ARRAY_AGG () en la consulta SELECT para obtener el resultado en forma de matriz. Pruebe la consulta indicada en su shell de comandos y obtenga el resultado. Como puede ver, tenemos la siguiente columna de salida "array_agg" con nombres listados en una matriz para la misma consulta.

>> SELECCIONE ARRAY_AGG (nombre) DE la persona;

Uso de ARRAY_AGG en varias columnas con la cláusula ORDER BY:

Ejemplo 01:

Aplicando la función ARRAY_AGG a múltiples columnas mientras usa la cláusula ORDER BY, considere la misma tabla "persona" dentro de la base de datos "prueba" que tiene tres columnas; "Id", "nombre" y "edad". En este ejemplo, usaremos la cláusula GROUP BY.

>> SELECCIONAR * DE la persona;

Hemos estado concatenando el resultado de la consulta SELECT en una lista de matriz mientras usamos las dos columnas "nombre" y "edad". En este ejemplo, hemos estado usando el espacio como un carácter especial que se ha utilizado para concatenar ambas columnas hasta ahora. Por otro lado, hemos estado obteniendo la columna "id" por separado. El resultado de la matriz concatenada se mostrará en una columna "datos personales" en tiempo de ejecución. El conjunto de resultados se agrupará primero por el "id" de la persona y se ordenará en orden ascendente del campo "id". Probemos el siguiente comando en el shell y veamos los resultados usted mismo. Puede ver que tenemos una matriz separada para cada valor concatenado name-age en la imagen a continuación.

>> SELECCIONAR id, ARRAY_AGG (nombre || "|| edad) como persondata DE la persona GRUPO POR id ORDEN POR id;



Ejemplo 02:

Considere una tabla "Empleado" recién creada dentro de la "prueba" de la base de datos que tiene cinco columnas; "Id", "nombre", "salario", "edad" y "correo electrónico". La tabla almacena todos los datos sobre los 5 empleados que trabajan en una empresa. En este ejemplo, usaremos el carácter especial '-' para concatenar dos campos en lugar de usar espacio mientras utilizamos la cláusula GROUP BY y ORDER BY.

>> SELECCIONAR * DE Empleado;

Concatenamos los datos de dos columnas, "nombre" y "correo electrónico" en una matriz mientras usamos '-' entre ellas. Igual que antes, extraemos la columna "id" claramente. Los resultados de la columna concatenada se mostrarán como "emp" en el tiempo de ejecución. El conjunto de resultados primero será ensamblado por el "id" de la persona, y luego, se organizará en orden ascendente de la columna "id". Intentemos un comando muy similar en el shell con cambios menores y veamos las consecuencias. A partir del resultado a continuación, ha adquirido una matriz distinta para cada valor concatenado nombre-correo electrónico presentado en la imagen, mientras que el signo '-' se usa en cada valor.

>> SELECCIONAR id, ARRAY_AGG (nombre || '-' || email) AS emp FROM Empleado GROUP BY id ORDER BY id;

Uso de ARRAY_AGG en varias columnas sin la cláusula ORDER BY:

También puede probar el método ARRAY_AGG en cualquier tabla sin usar la cláusula ORDER BY y GROUP BY. Suponga que un "actor" de tabla recién creado en su "prueba" de base de datos anterior tiene tres columnas; "Id", "fname" y "lname". La tabla contiene datos sobre los nombres y apellidos del actor junto con sus identificadores.

>> SELECCIONAR * DEL actor;

Por lo tanto, concatene las dos columnas "fname" y "lname" en una lista de matriz mientras usa el espacio entre ellas, igual que hizo en los dos últimos ejemplos. No hemos eliminado la columna 'id' claramente y hemos estado usando la función ARRAY_AGG dentro de la consulta SELECT. La columna concatenada de matriz resultante se presentará como "actores". Pruebe la consulta que se indica a continuación en el shell de comandos y eche un vistazo a la matriz resultante. Hemos obtenido una única matriz con el valor concatenado nombre-correo electrónico presentado, separado por una coma del resultado.

Conclusión:

Finalmente, casi ha terminado de ejecutar la mayoría de los ejemplos necesarios para comprender el método agregado ARRAY_AGG. Pruebe más de ellos al final para una mejor comprensión y conocimiento.

Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...