我有一个表(call_history)和一个电话呼叫列表报告,caller_id是呼叫者,start_date(DATETIME)是呼叫日期.我需要制作一份报告,说明每天有多少人第一次打电话.例如:
2013-01-01 - 100
2013-01-02 - 80
2013-01-03 - 90
Run Code Online (Sandbox Code Playgroud)
我有这个完美的查询,但它很慢.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
Run Code Online (Sandbox Code Playgroud)