这是我的桌子:
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;
但我收到一个错误:
错误号:1111
群组功能使用无效
我有种预感COUNT
, MAX
, MIN
or SUM
不能用于GROUP_CONCAT
。如果是这样,您知道另一种方法吗?
你需要COUNT()
with GROUP BY
在一个内在的SELECT
先条款后应用GROUP_CONCAT()
;
SELECT GROUP_CONCAT(cnt) cnt
FROM (
SELECT COUNT(*) cnt
FROM table1
GROUP BY fk_company
) q;
Output:
| CNT |
-----------
| 3,2,3,1 |
Here is SQLFiddle http://sqlfiddle.com/#!2/9c83f/3 demo.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)