我有张table和这个差不多
| 身份证|帐目|
| - ------|- ------|
| 小行星1111|小行星333 - 333|
| 小行星1111|小行星333 - 333|
| 二二二二二二|小行星444 - 444|
| 二二二二二二|小行星555 - 555|
| 二二二二二二|小行星555 - 555|
我试着把所有的东西聚集起来看起来像这样
| 身份证|帐目|
| - ------|- ------|
| 小行星1111|333 - 333 - 1、-2|
| 二二二二二二|电话:444 - 444 - 1、555 - 555 - 1、-2|
到目前为止我只知道这个
SELECT
id,
CONCAT((STRING_AGG(DISTINCT SUBSTRING(account FROM '^(([^-]*-){2})'), ', ')),
(STRING_AGG(DISTINCT SUBSTRING(account FROM '[^-]*$'), ', '))) account
GROUP BY id
但这产生了
| 身份证|帐目|
| - ------|- ------|
| 小行星1111|第333 - 333段第1、2段|
| 二二二二二二|第444 - 444段、第555 - 555段|
2条答案
按热度按时间gwbalxhn1#
我最终弄明白了,这对我很有效:))
nxagd54h2#
我建议采取不同的做法:首先将账号拆分为主、后缀,然后分别进行分组操作: