postgres中分组后拼接多行


现在有这样一个需求,表内容如:
这里写图片描述
,根据calss_type分组后,然后将name进行拼接返回,即:
这里写图片描述
mysql可以很方便的利用group_concat函数来实现,但是postgres9.0版本之前没有这样的函数,需要进行自定义函数,(参考博客)。
9.0版本后的postgres数据库,新增了许多函数:
这里写图片描述我们可以用array_agg(),string_agg()等函数来实现。注意string_agg()方法参数都必须为字符串。

select class_type,
string_agg(name,'-') as names
from user_account
group by class_type
或者
select class_type,
array_to_string(array_agg(name),'-') as names
from user_account
group by class_type



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM