2014-02-08 2 views
0

모든 누락 된 큐 호출에 대해 별표 (*)를 쿼리하는 데 적합하지만 다음과 같은 쿼리가 있습니다. 즉, 대기열 호출에 두 개의 확장자가 있으면 두 개의 부재 중 호출로 분류됩니다. 쿼리 내의 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 (디렉토리 호출) 객체 세부 정보? – 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 목록 :

SELECT COUNT(DISTINCT SUBSTRING_INDEX(cdr.channel,'@',1) AS today_total_8 
    FROM ... 
방지되는 것을 확장 (채널 '@'기호 앞의 부분)의 값을 "중복"합니다

한 번 이상 세었다.

SUBSTRING_INDEX 함수를 사용하여 '확장'만 반환합니다. 예 : 'Local/201'.

COUNT 집합 내의 DISTINCT 키워드는 고유 한 각 값 "확장자"에 대해 1을 더합니다.

+0

나에게 도움이 되길 원하십니까? http://stackoverflow.com/questions/30378663/mysql-querying-ag- nt-non-overlapping-dates? – exodream