我有一个包含电话报告列表的表格(call_history),caller_id 是来电者,start_date(DATETIME)是通话日期。我需要制作一份报告,显示每天有多少人第一次打电话。例如:
2013-01-01 - 100
2013-01-02 - 80
2013-01-03 - 90
我有这个查询可以完美地完成它,但它非常慢。start_date 和 caller_id 列都有索引;是否有其他方法可以获取此信息以加快流程?
这是查询:
SELECT SUBSTR(c1.start_date,1,10), COUNT(DISTINCT caller_id)
FROM call_history c1
WHERE NOT EXISTS
(SELECT id
FROM call_history c2
WHERE SUBSTR(c2.start_date,1,10) < SUBSTR(c1.start_date,1,10)
AND c2.caller_id=c1.caller_id)
GROUP BY SUBSTR(start_date,1,10)
ORDER BY SUBSTR(start_date,1,10) desc