Ошибка mysql: звездочка FUNCTION.SUM не существует. (Расширенный набор Apache)

Я подключил базу данных mysql и выполнил прямой запрос sql, и я получил правильную таблицу, я хотел ее визуализировать и нажал кнопку «Исследовать», но получил сообщение об ошибке: «Ошибка mysql: FUNCTION asterisk.SUM не существует. Проверьте раздел «Анализ и разрешение имени функции» в Справочном руководстве «Скажите, пожалуйста, где я допустил ошибку, спасибо.

рабочий запрос sql

ошибка

Мой запрос sql:

SELECT DATE_FORMAT(start, '%Y-%m-%d') AS Date, 
       disposition AS Type, 
       DATE_FORMAT(SEC_TO_TIME(SUM(end-start)),'%H:%i:%S') AS Call_duration,
case
     when substring(dstchannel,5,4) = '1000' then 'Name1'
     when substring(dstchannel,5,4) = '2000' then 'Name2'
     when substring(dstchannel,5,4) = '3000' then 'Name3'
     when substring(dstchannel,5,4) = '4000' then 'Name4'
     when substring(dstchannel,5,3) = '100' then 'Other'
end AS Operator,
    count(*) AS Number_of_calls
    FROM cdr
    WHERE dcontext = 'call-in'
    AND disposition = 'ANSWERED'
    AND end-start > 0
    group by DATE_FORMAT(start, '%Y-%m-%d'), 4
    order by 1 desc

Мой запрос работает правильно, но когда я пытаюсь создать диаграмму, надмножество меняет запрос, и после SUM появляется разрыв строки. Могу ли я исправить это, не меняя конфигурацию базы данных?

Запрос надмножества:

SELECT `Date` AS `Date`,
       `Type` AS `Type`,
       `Call_duration` AS `Call_duration`,
       `Operator` AS `Operator`,
       `Number_of_calls` AS `Number_of_calls`
FROM
  (SELECT DATE_FORMAT
     (start, '%Y-%m-%d') AS Date,
          disposition AS Type,
          DATE_FORMAT(SEC_TO_TIME(SUM
                                    (end-start)), '%H:%i:%S') AS Call_duration,
          case
              when substring(dstchannel, 5, 4) = '1000' then 'Name1'
              when substring(dstchannel, 5, 4) = '2000' then 'Name2'
              when substring(dstchannel, 5, 4) = '3000' then 'Name3'
              when substring(dstchannel, 5, 4) = '4000' then 'Name4'
              when substring(dstchannel, 5, 3) = '100' then 'Other'
          end AS
   Operator,
          count(*) AS Number_of_calls
   FROM cdr
   WHERE dcontext = 'call-in'
     AND disposition = 'ANSWERED'
     AND end-
     start > 0
   group by DATE_FORMAT
     (start, '%Y-%m-%d'),
            4
   order by 1 desc) AS expr_qry
LIMIT 1000;

person flover    schedule 03.04.2020    source источник


Ответы (1)


Ваш group by не соответствует select столбцам. Пытаться:

SELECT DATE_FORMAT(start, '%Y-%m-%d') AS Date,
       disposition AS Type, 
       DATE_FORMAT(SEC_TO_TIME(SUM(end-start)), '%H:%i:%S') AS Call_duration,
       (case when substring(dstchannel,5,4) = '1000' then 'Name1'
             when substring(dstchannel,5,4) = '2000' then 'Name2'
             when substring(dstchannel,5,4) = '3000' then 'Name3'
             when substring(dstchannel,5,4) = '4000' then 'Name4'
             when substring(dstchannel,5,3) = '100' then 'Other'
        end) AS Operator,
       count(*) AS Number_of_calls
FROM cdr
WHERE dcontext = 'call-in' AND
      disposition = 'ANSWERED'
      end > start 
group by DATE_FORMAT(start, '%Y-%m-%d'), type, call_duration, operator
order by 1 desc
person Gordon Linoff    schedule 03.04.2020