pgSQL 多行数据分组并合并字段值
可以使用 pgSQL 中的数组和聚合函数来实现将多行数据根据某一字段分组,并将其他字段的值放到一行中。
假设我们有以下的数据表结构:
CREATE TABLE data (
id SERIAL PRIMARY KEY,
group_id INTEGER,
value TEXT
);
我们可以使用以下的查询语句来实现将数据根据 'group_id' 字段分组,并将 'value' 字段的值放到一行中:
SELECT
group_id,
ARRAY_AGG(value) AS values
FROM
data
GROUP BY
group_id;
上述查询中,我们使用了聚合函数 'ARRAY_AGG' 来将 'value' 字段的值组成一个数组。通过使用 'GROUP BY' 语句,我们可以将数据按照 'group_id' 字段分组。最终的结果将会是每个 'group_id' 对应一个数组,数组中包含了该分组下所有的 'value' 字段的值。
如果你希望将其他字段的值也放到一行中,可以在 'SELECT' 语句中添加相应的字段,并使用聚合函数来处理。例如,如果还有一个字段 'name' 需要放到一行中,可以使用以下查询语句:
SELECT
group_id,
ARRAY_AGG(value) AS values,
ARRAY_AGG(name) AS names
FROM
data
GROUP BY
group_id;
这样,每个 'group_id' 对应的数组中就包含了 'values' 和 'names' 字段的值。
原文地址: https://www.cveoy.top/t/topic/qqJm 著作权归作者所有。请勿转载和采集!