PostgreSQL 多行数据分组,合并字段值并排序
您可以使用GROUP BY和STRING_AGG函数来实现多行数据根据某一字段分组,并将其他字段的值放到一行中以逗号分割并排序。
假设您有一个表table_name,包含以下字段:group_field,value_field。
以下是一个示例查询的语法:
SELECT group_field, STRING_AGG(value_field, ',') AS concatenated_values
FROM table_name
GROUP BY group_field
ORDER BY group_field;
这将根据group_field字段分组,并将每个分组中的value_field字段值以逗号分割并排序后放到一行中。
注意,STRING_AGG函数是在 PostgreSQL 9.0 版本引入的,如果您使用的是较早的版本,则无法使用该函数。在较早的版本中,您可以考虑使用array_agg函数来将值聚合为数组,然后使用array_to_string函数将数组转换为以逗号分隔的字符串。以下是相应的示例查询:
SELECT group_field, array_to_string(array_agg(value_field), ',') AS concatenated_values
FROM table_name
GROUP BY group_field
ORDER BY group_field;
原文地址: https://www.cveoy.top/t/topic/qqNt 著作权归作者所有。请勿转载和采集!