當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PostgreSQL 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;

輸出:

相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 PostgreSQL – ARRAY_AGG() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。