mysql查询concat数据成group_concat

标签 mysql sql group-concat

enter image description here

这是我的 table 。我进行了以下查询并得到了结果:

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(107,108,109)

我该怎么做?

最佳答案

您需要两个级别的聚合:

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;

关于mysql查询concat数据成group_concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39715065/

相关文章:

mysql - 如何在 mysql 中进行 foreach 类型查询,将每一行与另一个表中的几行进行比较?

php - SQL:使用计数查询返回 1

mysql - 根据一根金条的定价获取一个人的支出总和

php - 同一个查询中的多个 group_concat

mysql - 如何正确使用不同的 group_concat - MYSQL

mysql - Ruby on Rails - MySQL 错误的字符串值

java - 无法使用 JDBC 读取特殊字符

mysql - 如何在不使用 group by 语句的情况下选择不同的行

sql - CHECKPOINT 的工作方式与 SQL 中的 COMMIT 相同吗?

mysql - group_concat 不适用于计数