Sql 如何使用Postgres将行数数据放入另一个表行的单个数组中
我有一张表<代码>产品尺寸:<代码>产品id,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
另一个表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;