mysql - 在 GROUP_CONCAT 中使用 COUNT

标签 mysql sql count group-concat

这是我的 table :

  id  | fk_company
-------------------
  1   |     2    
  2   |     2    
  3   |     2    
  4   |     4    
  5   |     4    
  6   |     11   
  7   |     11   
  8   |     11   
  9   |     12

我想要的结果应该是字符串“3, 2, 3, 1”(属于每个公司的项目数),因为这只是我的复杂查询字符串的一部分。

我尝试使用这个查询:

SELECT GROUP_CONCAT(COUNT(id) SEPARATOR ", ")
FROM `table` GROUP BY fk_company;

但是我得到一个错误:

Error Number: 1111
Invalid use of group function

我有一种感觉COUNT , MAX , MINSUM不能用于 GROUP_CONCAT .如果是这样,您知道另一种方法吗?

最佳答案

您需要先在内部 SELECT 子句中使用 GROUP BY COUNT(),然后再应用 GROUP_CONCAT();

SELECT GROUP_CONCAT(cnt) cnt
FROM (
    SELECT COUNT(*) cnt
    FROM table1
    GROUP BY fk_company
) q;

输出:

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

这里是 SQLFiddle 演示。

关于mysql - 在 GROUP_CONCAT 中使用 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17463171/

相关文章:

mysql - 如何计算MySQL中的相似兴趣

r - 对相同的列表元素进行分组并计算其在 R 中的出现次数

java - 如何使用 Java 在 MongoDB 中通过嵌入数组过滤文档

python - 如何计算 Pandas 数据框中单元格的项目数(或长度)?

php - innodb mysql无法更新、搜索、删除表中的某些某些项目

php - 更新旧的 mySQL 脚本

尝试从字典插入数据时,Python 的值太多而无法解压

mysql - 运行重新启动的查询

mysql - MySQL 中何时使用单引号、双引号和反引号

PHP 取消设置 sql 查询