我正在使用
postgresql,我有一个这样的表:
@H_404_11@Group | Name
======================================
1 | Mary
2 | Barry,Ann,Peter
3 | Max,Chris
4 | Richard,Mary,Peter,Oliver
该表是一个示例,您可以考虑将有超过10,000个不同的名称,一个组中的最大名称数为4.
我想按字母顺序对每个组中的名称进行排序,结果如下:
@H_404_11@Group | Name ====================================== 1 | Mary 2 | Ann,Barry,Peter 3 | Chris,Max 4 | Mary,Oliver,Richard谢谢
解决方法
@H_404_11@SELECT t.Group,string_agg(n.names,',' ORDER BY n.names) AS Name
FROM my_table t,regexp_split_to_table(t.Name,'g') n(names)
GROUP BY 1
ORDER BY 1;