Вы группируете по другим столбцам, чем в списке выбора.Все неагрегированные столбцы должны быть частью предложения group by
.В этом случае список select
содержит столбцы:
JSON_VALUE(JSON_DATA, '$.name.moduleCodesSelected[0]')
в group by
:
JSON_VALUE(JSON_DATA, '$.cssr.moduleCodesSelected[0]')
Примечание: name
против cssr
.Вот демоверсия dbfiddle , которая показывает проблему (первый запрос - исправленная версия, второй - ваш).
Вы также можете переписать этот запрос, чтобы выполнить преобразование json только один раз, например, здесь:
select found_in_mart, mod_1, mod_2, mod_3, count(*)
from (
select found_in_mart,
json_value(json_data, '$.vdps.contactchannel') contact,
json_value(...) as mod_1, -- choose cssr or name
json_value(...) as mod_2,
json_value(...) as mod_3
from t)
group by found_in_mart, contact, mod_1, mod_2, mod_3
Если это не поможет, отредактируйте свой вопрос и покажите примерданные, что позволяет нам копировать неправильное поведение.предпочтительно в виде dbfiddle .