count не работает внутри group_concat Mysql

0

Я пытаюсь выполнить подсчет id и 1 внутри group_concat. Ниже мой запрос.

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 - Invalid use of group function. Я пробовал эту ссылку mysql group_concat со счетом внутри? но я сталкиваюсь с ошибкой при использовании в моем запросе.

  • 2
    GROUP_CONCAT() и COUNT() являются агрегатными функциями. Вы не можете вкладывать одно в другое. Если вы продемонстрировали нам пример ввода и желаемый результат, мы могли бы помочь вам понять, как структурировать ваш запрос.
  • 0
    @O.JonesO.Jones Привет, Джонс. Я обновил свой вопрос и добавил пример вывода. Пожалуйста, проверьте.
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Это предположение.

Пытаться:

SELECT months.name AS NAME,
      CONCAT('{',COUNT(p_c_n_details.JPN_ID),',1}' AS DATA

вместо SELECT, который у вас есть.

Результат вашего примера не показывает необходимость в GROUP_CONCAT().

  • 0
    Спасибо, Джонс. Вы правы, GROUP_CONCAT () не нужен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню