计数不在组内工作\u concat Mysql

计数不在组内工作\u concat Mysql,mysql,Mysql,我正在尝试在组中计算id和1的计数。下面是我的问题 MYSQL: SELECT months.name AS NAME, CONCAT( '[', GROUP_CONCAT( CONCAT( '[\"', COUNT(p_c_n_details.JPN_ID), '\",', 1, ']' ) ), ']' ) A

我正在尝试在组中计算id和1的计数。下面是我的问题

MYSQL:

SELECT
months.name AS NAME,
CONCAT(
    '[',
    GROUP_CONCAT(
        CONCAT(
            '[\"',
            COUNT(p_c_n_details.JPN_ID),
            '\",',
            1,
            ']'
        )
    ),
    ']'
) AS DATA
FROM
p_c_n_details
INNER JOIN in_e_s_s__p_c_ns RIGHT OUTER JOIN months ON months.id = 
MONTH(p_c_n_details.created_at) AND p_c_n_details.type IN('Process Change', 
'Design Change') AND p_c_n_details.JPN_ID = 
in_e_s_s__p_c_ns.juniperinternalpcnid AND p_c_n_details.created_at >= 
last_day(NOW()) + INTERVAL 1 DAY - INTERVAL 3 MONTH
WHERE
months.name IN(
    MONTHNAME(
        DATE_SUB(CURDATE(), INTERVAL 0 MONTH)),
        MONTHNAME(
            DATE_SUB(CURDATE(), INTERVAL 1 MONTH)),
            MONTHNAME(
                DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
            )
        GROUP BY
            months.id
预期产出:

Name   |     DATA
-------------------------
July        [20,1]
August       [33,1]

Table months contains month names.
但我得到了错误1111-组函数的无效使用。我试过这个链接 但是我在查询中使用时遇到了错误。

这是一个猜测

尝试:

代替您现在拥有的选择


您的示例结果没有显示需要GROUP_CONCAT。

GROUP_CONCAT和COUNT都是聚合函数。你不能把一个嵌套在另一个里面。如果您向我们展示一些示例输入和所需输出,我们可能会帮助您了解如何构造查询。@O.Jones Hi Jones我更新了我的问题并添加了示例输出。请查查。我不明白你是怎么得到{33,2}中的2的。我也不明白{}字符是如何来自示例查询中的[]字符的。@O.Jones我更改了它不是2,它是1默认值。谢谢Jones。你说得对,不需要组。
SELECT months.name AS NAME,
      CONCAT('{',COUNT(p_c_n_details.JPN_ID),',1}' AS DATA