Mysql客户表计数跟进记录

时间:2019-03-05 12:27:58

标签: mysql

我是mysql新手,我有一个客户服务表,用于存储来自客户或客户服务的呼叫。如果从客户号码到客户服务号码的呼叫掉线(如果duration < 10已掉线),则客户服务将在30分钟内检查掉线的呼叫,并通过呼叫进行跟进。

我必须找到跟进呼叫的总数。

fromno       tono      startime        endtime            duration
91xxxx       121    yyyy-mm-dd h:i:s  yyyy-mm-dd h:i:s      9
91xxxx       121    yyyy-mm-dd h:i:s  yyyy-mm-dd h:i:s      26
91xxxx       121    yyyy-mm-dd h:i:s  yyyy-mm-dd h:i:s      56
91xxxx       121    yyyy-mm-dd h:i:s  yyyy-mm-dd h:i:s      5
121          91x    yyyy-mm-dd h:i:s  yyyy-mm-dd h:i:s      35

第1行的呼叫被删除,第5行中的客户服务部门对其进行了跟踪

我的查询

Select COUNT(*) 
from customer A 
JOIN customer B ON A.tono = B.fromno 
where A.duration < 10 and TIMEDIFF(A.endtime, B.starttime) = "00:30:00"; 

它给出了计数,但是我不确定这对于大型数据集是否可以正常工作。

1 个答案:

答案 0 :(得分:1)

您需要选择30分钟内的所有通话,因此=会变为<=。另外,A.tono = B.fromno应该更改为A.fromno = B.tono,因为您的情况下A.tono和B.fromno是客户服务编号(表A上10秒的持续时间检查,即客户试图致电客户服务部)。 / p>

SELECT COUNT(*) 
FROM customer A 
INNER JOIN customer B
ON A.fromno = B.tono 
WHERE A.duration < 10 and TIMEDIFF(A.endtime, B.starttime) <= "00:30:00";