在GROUP_CONCAT中使用COUNT

mes*_*cka 11 mysql sql count group-concat

这是我的表:

id    fk_company
1          2    
2          2    
3          2    
4          4    
5          4    
6          11   
7          11   
8          11   
9          12
Run Code Online (Sandbox Code Playgroud)

我想要的结果应该是字符串"3,2,3,1",因为这只是我的复杂查询字符串的一部分.

我试图使用这个查询:

SELECT GROUP_CONCAT(COUNT(id) SEPARATOR ", ")
FROM `table` GROUP BY fk_company;
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误:

错误号码:1111

组功能的使用无效

我有一种感觉COUNT,MAX,MIN或SUM不能在GROUP_CONCAT中使用.如果是这样,你知道另一种方法吗?

pet*_*erm 13

你需要COUNT()GROUP BY在内部首先选择,然后应用GROUP_CONCAT()

SELECT GROUP_CONCAT(cnt) cnt
  FROM
(
  SELECT COUNT(*) cnt
    FROM table1
   GROUP BY fk_company
) q
Run Code Online (Sandbox Code Playgroud)

输出:

|     CNT |
-----------
| 3,2,3,1 |

这是SQLFiddle演示