La función PostgreSQL ARRAY_AGG() es una función agregada que acepta un conjunto de valores y devuelve una array donde cada valor en el conjunto de entrada se asigna a un elemento de la array.
Syntax: ARRAY_AGG(expression [ORDER BY [sort_expression {ASC | DESC}], [...])
La cláusula ORDER BY es una cláusula voluntaria. Especifica el orden de las filas que se procesan en la colección, lo que establece el orden de los elementos en la array de resultados. A menudo se usa con la cláusula GROUP BY .
Ahora veamos algunos ejemplos.
Ejemplo 1:
Usaremos las tablas film
, film_actor
y en la base de datos de ejemplo de dvdrental para la demostración. En este ejemplo, consultaremos la lista de títulos de películas y una lista de actores para cada película usando la función ARRAY_AVG() de la siguiente manera:actor
SELECT title, ARRAY_AGG (first_name || ' ' || last_name) actors FROM film INNER JOIN film_actor USING (film_id) INNER JOIN actor USING (actor_id) GROUP BY title ORDER BY title;
Producción:
Ejemplo 2:
aquí usaremos la función ARRAY_AGG() para devolver una lista de películas y una lista de actores para cada película ordenados por el nombre del actor usando los siguientes comandos:
SELECT title, ARRAY_AGG ( first_name || ' ' || last_name ORDER BY first_name ) actors FROM film INNER JOIN film_actor USING (film_id) INNER JOIN actor USING (actor_id) GROUP BY title ORDER BY title;
Producción:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA