这个问题与mysql group_concat with a count inside?非常相似,但我无法解决如何解决问题的方法。
我有这个问题:
SELECT
printer AS `Copieur/Imprimante`,
GROUP_CONCAT(DISTINCT groupname SEPARATOR "\r\n") AS `Groupes`,
FROM `assoc`
WHERE groupname
IN (SELECT * FROM wanted_groups)
GROUP BY printer;
这给了我这个:
我想添加每个打印机组的计数,有点像
\\simp\DSI - Canon iR C4580 PCL6 | DSI-ECRITURE (20)
| DPDSI-ECRITURE (3)
...
希望我的问题足够清楚 感谢
答案 0 :(得分:1)
您可以通过预先聚合数据来获取计数,然后再次聚合以将结果放入所需格式中,从而实现您想要的目标:
SELECT printer AS `Copieur/Imprimante`,
GROUP_CONCAT(groupname, ' (', cnt, ')' SEPARATOR '\r\n') AS `Groupes`
FROM (SELECT printer, groupname, COUNT(*) as cnt
FROM `assoc`
WHERE groupname IN (SELECT * FROM wanted_groups)
GROUP BY printer, groupname
) a
GROUP BY printer;