简而言之,我有 2 张桌子:
用户:
------------------------
UserID | Name
------------------------
0 a
1 b
2 c
CALLS:
------------------------
ToUser | Result
------------------------
0 ANSWERED
1 ENGAGED
1 ANSWERED
0 ANSWERED
等等(我在现实中使用数字参考来表示结果)
我有超过 200 万条记录,每条记录都详细说明了对特定客户的呼叫。目前,在我已经完成快速总数之后,我正在使用 Case 语句来计算特定结果的每次重复:
COUNT(DISTINCT l_call_log.line_id),
COALESCE (SUM(CASE WHEN l_call_log.line_result = 1 THEN 1 ELSE NULL END), 0) AS [Answered],
COALESCE (SUM(CASE WHEN l_call_log.line_result = 2 THEN 1 ELSE NULL END), 0) AS [Engaged],
COALESCE (SUM(CASE WHEN l_call_log.line_result = 4 THEN 1 ELSE NULL END), 0) AS [Unanswered]
在我的初始总计数之后,我是否对数据进行了 3 次扫描?如果是这样,有没有办法我可以一次扫描并根据结果一次计算呼叫?
谢谢。