2014-02-08 2 views
0

У меня есть следующий запрос, который хорошо подходит для запроса asterisk cdr для всех пропущенных вызовов очереди, но он дублирует. То есть, если в вызове очереди есть два расширения, тогда он классифицируется как два пропущенных вызова.Запрос MySQL в запросе

Запрос:

SELECT count(*) as today_total_8 
    FROM cdr 
    WHERE channel LIKE '%from-queue%' 
     AND disposition='NO ANSWER' 
     AND DATE(`calldate`) = DATE(CURDATE()) 

В столбце calldate одно и то же значение для всех двух результатов; как я могу добавить это к вышеуказанному запросу, чтобы отобразить счет на один пропущенный вызов?

Данные, возвращаемые на SELECT, без подсчета:

calldate   channel     disposition  
------------------------------------------------------------------------ 
2014-02-08 01:15:02  Local/[email protected];2  NO ANSWER 
2014-02-08 01:15:02  Local/[email protected];2  NO ANSWER 
2014-02-08 00:18:04  Local/[email protected];2  NO ANSWER 
2014-02-08 00:18:04  Local/[email protected];2  NO ANSWER 

Как я могу сделать это, как я хочу, чтобы мой отсчет быть 2?

+0

Где находится структура таблицы? – Premraj

+0

Извините, я не знаю, что вы имеете в виду. – user3148002

+0

Детали объекта Cdr (call directory)? – Premraj

ответ

0
SELECT count(distinct calldate) as today_total_8 
FROM cdr 
WHERE channel LIKE '%from-queue%' 
    AND disposition='NO ANSWER' 
    AND DATE(`calldate`) = DATE(CURDATE()) 
GROUP BY calldate 
+0

Спасибо, все сработало. – user3148002

0

Изменения ВЫБРАТЬ список запроса к чему-то вроде этого:

SELECT COUNT(DISTINCT SUBSTRING_INDEX(cdr.channel,'@',1) AS today_total_8 
    FROM ... 

Это предотвратит «дублировать» значение расширения (часть канала предыдущего знака «@») от того, считается более одного раза.

Эта функция SUBSTRING_INDEX возвращает только «расширение», например. 'Local/201'.

Ключевое слово DISTINCT внутри совокупности COUNT добавляет 1 к счету для каждого уникального значения «расширение».

+0

Не могли бы вы помочь мне в этом http://stackoverflow.com/questions/30378663/mysql-querying-aggregate-of-non-overlapping-dates? – exodream

Смежные вопросы