Я пытаюсь суммировать доход на основе столбца канала и названия продукта, вот запрос, который я использую в Codeigniter:
$datas['row']=$this->db->query('SELECT channel,product_name, SUM(revenue) AS revenue FROM contribution WHERE YEAR(date) = 2019 GROUP BY channel, SUBSTRING(product_name, 1, 3)')->result();
Но в результате всегда возвращается это сообщение: "Выражение #2 из списка SELECT отсутствует в предложении GROUP BY и содержит неагрегированный столбец «datamart.contribution.product_name», который не является функционально зависимым от столбцов в предложении GROUP BY; это несовместимо с sql_mode = only_full_group_by "
, но если яизмените запрос следующим образом:
$datas['row']=$this->db->query('SELECT channel,product_name, SUM(revenue) AS revenue FROM contribution WHERE YEAR(date) = 2019 GROUP BY channel, product_name')->result();
он возвращает значение успешно, но не то, что я хочу. Возвращает сумму дохода, которая сгруппирована только по каналу, а не по имени продукта. Я хочу получить сумму дохода в зависимости от канала, а также название продукта.