mysql - SQL 使用 group_concat 和每个串联项的计数而不是一行中的总计数

标签 mysql database count mariadb group-concat

MYSQl - Count of elements inside Group_Concat

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

有人可以帮忙吗?

最佳答案

至于问题,要解决错误并获得正确的结果,您只需从聚合子查询中返回 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

关于mysql - SQL 使用 group_concat 和每个串联项的计数而不是一行中的总计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55224646/

相关文章:

c# - SubSonic 3,在运行时构建动态或表达式

.net - NHibernate 查询与 Projections.Cast 到 DateTime

php - 使用 PHP 不工作创建数据库记录

mysql - 总结每个用户的最新记录

python - 计算列表列中两个元素的出现次数

php - OR 运算符在 mysql php 中不严格工作

mysql - Sql Union 或 Join 或两者一起

php - MySQL 性能命中同时访问表

mysql - 对多个 COUNT 求和的 UNION 语法

mysql - 如何将 GROUP BY 与 HAVING 一起使用?