Mysql查询将数据串联成组连接

时间:2016-09-27 02:23:54

标签: mysql sql group-concat

enter image description here

这是我的桌子。我做了以下查询并得到了结果:

mysql - 查询:

                 SELECT   

 GROUP_CONCAT(CONCAT('', j0.rent_agree_id,'-',j0.rent_sche_id) ) AS agreement_ref_no
                FROM
                  rent_provision_history AS j0

                  GROUP BY provision_date

结果:

enter image description here

但我想以不同的方式看待结果。

例如我现在得到的最后一行结果:4-68,4-69,6-107,6-108,6-109

但我想这样看: 4(68,69)| 5(107108109)

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要两个级别的聚合:

SELECT provision_date,
       GROUP_CONCAT(rent_agree_id, '(', rsi, ')' SEPARATOR '|') agreement_ref_no
FROM (SELECT j0.rent_agree_id, GROUP_CONCAT(j0.rent_sche_id) as rsi
      FROM rent_provision_historyj0
      GROUP BY j0.provision_date, j0.rent_agree_id
     ) j0
GROUP BY j0.provision_date;