Sql 如何使用Postgres将行数数据放入另一个表行的单个数组中

Sql 如何使用Postgres将行数数据放入另一个表行的单个数组中,sql,postgresql,aggregation,Sql,Postgresql,Aggregation,我有一张表产品尺寸:产品id,尺寸,尺寸id 另一个表product:product\u id,productname 我想得到如下输出。 例:- 不太清楚什么是[20,25,30]。我可以想出两个可能的答案,如下所示: 假设[20,25,30]是size\u ids,下面是一个查询: SELECT productname, array_agg(size_id) FROM product JOIN product_size USING (product_i

我有一张表<代码>产品尺寸:<代码>产品id,
尺寸
尺寸id

另一个表
product
product\u id
productname

我想得到如下输出。 例:-


不太清楚什么是
[20,25,30]
。我可以想出两个可能的答案,如下所示:

假设
[20,25,30]
size\u id
s,下面是一个查询:

SELECT
    productname,
    array_agg(size_id)
FROM
    product
    JOIN product_size
    USING (product_id)
GROUP BY
    productname;


假设
[20,25,30]
是产品的尺寸,如
[length,width,height]

SELECT
    productname,
    ARRAY[
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'x'), 
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'y'), 
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'z')
    ]
FROM
    product;

不太清楚什么是
[20,25,30]
。我已经发布了我的答案,然后认为它可能意味着其他东西,所以我发布了另一个。。。请检查其中一个是否正确。
SELECT
    productname,
    ARRAY[
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'x'), 
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'y'), 
        (SELECT size FROM product_size WHERE product_size.product_id = product.product_id AND size_id = 'z')
    ]
FROM
    product;