これは私のテーブルです:
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、SUMはGROUP_CONCATでは使用できないと感じています。もしそうなら、あなたはこれを行う別の方法を知っていますか。
最初に内部選択で_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デモです
SELECT A,
GROUP_CONCAT(B SEPARATOR '/') AS 'Category',
GROUP_CONCAT(C SEPARATOR '/') AS 'ALIAS_NAME',COUNT('ALIAS_NAME') AS 'Count'
FROM carnews
...
...
GROUP BY 1
ORDER BY 4 DESC
私の場合、これはうまく機能します。
select GROUP_CONCAT(counts)
from (
select count(id) counts from
table group by fk_company
);