Cómo usar la función PostgreSQL Array_agg?

Cómo usar la función PostgreSQL Array_agg?
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 valores nulos. 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 PostgreSQL Array_agg, usará el pedido por frase. También puede usar la cláusula WHERE cuando sea necesario.

Para comprender el método agregado array_agg (), debe realizar varios ejemplos. Para este propósito, abra el shell de línea de comandos 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 en la base de datos. Si desea usar la base de datos predeterminada, E.gramo., Postgres, luego déjelo como está y presione Entrar; De lo contrario, escriba el nombre de una base de datos, e.gramo., "Prueba", como se muestra en la imagen a continuación. Si desea usar otro puerto, escríbalo, de lo contrario, déjelo como está y toca Enter 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 "Entrar". Al final, debe proporcionar su contraseña de usuario actual, para comenzar a usar la línea de comandos utilizando ese usuario en particular como se muestra a continuación. Después de las entradas exitosas de toda la información requerida, está listo para ir.

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 las ID 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 la 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 de selección para obtener el resultado en forma de matriz. Pruebe la consulta establecida en su shell de comando y obtenga el resultado. Como puede ver, tenemos la siguiente columna de salida "Array_agg" que tiene nombres en una matriz para la misma consulta.

>> seleccione Array_agg (nombre) de la persona;

Uso de Array_agg en múltiples columnas con la cláusula de orden por orden:

Ejemplo 01:

Aplicando la función Array_agg a múltiples columnas mientras usa la cláusula de orden por orden, considere la misma tabla "persona" dentro de la base de datos "prueba" que tiene tres columnas; "ID", "Nombre" y "Edad". En este ejemplo, usaremos el grupo por cláusula.

>> seleccionar * de la persona;

Hemos estado concatenando el resultado de la consulta de selección 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 buscando la columna "ID" por separado. El resultado de la matriz concatenado se mostrará en una columna "PERSONDATA" en tiempo de ejecución. El conjunto de resultados se agrupará primero por la "identificación" de la persona y se ordenará en orden ascendente de campo "ID" de campo. Probemos el siguiente comando en el shell y veamos los resultados usted mismo. Puede ver que tenemos una matriz separada para cada valor concatenado de la edad de nombre en la imagen a continuación.

>> Seleccione ID, Array_agg (nombre || "|| edad) como Persondata del grupo de persona por orden de identificación por id;



Ejemplo 02:

Considere una tabla recientemente creada "Empleado" dentro de la base de datos "Prueba" que tiene cinco columnas; "ID", "Nombre", "Salario", "Age" y "Correo electrónico". La tabla almacena todos los datos sobre los 5 empleados que trabajan en una empresa. En este ejemplo, utilizaremos el carácter especial '-' para concatenar dos campos en lugar de usar espacio mientras utilizan el grupo y ordenar por cláusula.

>> seleccionar * del empleado;

Concatenamos los datos de dos columnas, "nombre" y "correo electrónico" en una matriz mientras usa '-' entre ellas. Igual que antes, extraemos la columna "ID" claramente. Los resultados de la columna concatenada se mostrarán como "EMP" en tiempo de ejecución. El conjunto de resultados será ensamblado primero por la "identificación" 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. Del resultado a continuación, ha adquirido una matriz distinta para cada valor concatenado de nombre de nombre presentado en la imagen, mientras que el signo '-' se usa en cada valor.

>> seleccione ID, Array_agg (nombre || '-' || Correo electrónico) como EMP del grupo de empleados por orden de identificación por identificación;

Uso de array_agg en múltiples columnas sin orden por cláusula:

También puede probar el método array_agg en cualquier tabla sin usar el pedido y agrupar por cláusula. Suponga que una tabla recientemente creada "actor" en su antigua base de datos "prueba" que tiene tres columnas; "ID", "fname" y "lname". La tabla contiene datos sobre los nombres y apellidos del actor junto con sus IDS.

>> seleccionar * del actor;

Entonces, concatene las dos columnas "fname" y "lname" en una lista de matriz mientras usa espacio entre ellas, igual que en los últimos dos ejemplos. No hemos sacado la columna 'ID' de manera clara y han estado utilizando la función Array_Agg dentro de la consulta SELECT. La columna concatenada de matriz resultante se presentará como "actores". Pruebe la consulta establecida a continuación en el shell de comando y vislumbra la matriz resultante. Hemos obtenido una sola matriz con el valor concatenado de nombre de nombre 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 de array_agg. Pruebe más de ellos al final para una mejor comprensión y conocimiento.