使用group_concat的SQL,每个连接项的计数而不是一行中的总计数

问题描述 投票:1回答:1

MYSQl - Count of elements inside Group_Concat

我把它重写为this fiddle,但它给出了错误。

有人可以帮忙吗?

mysql database count mariadb group-concat
1个回答
1
投票

关于问题,要解决错误并获得正确的结果,您只需要从聚合子查询返回CUSTOMERID(该列已经是GROUP BY子句的一部分)。

更新的查询:

 SELECT SELLER, 
       COUNT(*) as COUNT_OF_CUSTIDS,
       GROUP_CONCAT(CUSTOMERID, ' (', cnt, ')' SEPARATOR '|') AS CUSTIDS
FROM (
    SELECT SELLER, CUSTOMERID, COUNT(*) as cnt
    FROM docs
    GROUP BY SELLER, CUSTOMERID
) t
GROUP BY SELLER
HAVING COUNT(*) > 1

返回:

| SELLER | COUNT_OF_CUSTIDS | CUSTIDS              |
| ------ | ---------------- | -------------------- |
| S1     | 3                | C2 (2)|C1 (2)|C3 (3) |
| S2     | 3                | C3 (1)|C2 (1)|C1 (2) |

Demo on DB Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.