介绍 PostgreSQL STRING_AGG() 和 ARRAY_AGG()函数

PostgreSQL ARRAY_AGG()函数是一个聚合函数,它接受一组值并返回一个数组,其中将输入集中的每个值分配给该数组的元素。

用法: ARRAY_AGG(expression [ORDER BY [sort_expression {ASC | DESC}], [...])

ORDER BY子句是自愿性子句。它指定集合中要处理的行的顺序,从而确定结果数组中元素的顺序。它通常与GROUP BY子句一起使用。现在让我们看一些例子。范例1:我们将使用filmfilm_actor actor 中的表格dvdrental 样本数据库进行示范。在此示例中,我们将使用ARRAY_AVG()函数来查询每部电影的电影标题列表和演员列表,如下所示:

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;

 

 范例2:
在这里,我们将使用ARRAY_AGG()函数来返回电影列表和每部电影的演员列表,并使用以下命令按演员的名字排序:

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;

输出:

 

 

 转载:https://vimsky.com/examples/usage/postgresql-array_agg-function.html

posted @ 2022-02-14 10:43  hubb  阅读(806)  评论(0编辑  收藏  举报