此表保留销售人员调用的电话的记录:
id | clientid | salespersonid | call_duration | date | last_update
1 | c2345 | sp34 | 05:00 | yyyy | yyyy
2 | c2345 | sp34 | 05:00 | yyyy | yyyy
3 | c2345 | sp35 | 05:00 | yyyy | yyyy
4 | c2345 | sp36 | 05:00 | yyyy | yyyy
5 | c2361 | sp36 | 05:00 | yyyy | yyyy
6 | c2361 | sp36 | 05:00 | yyyy | yyyy
有了这张表,我想计算两件事:
每个客户的平均调用次数:每个客户的平均调用次数。
在这种情况下,数字应该返回:3
每个销售人员的平均通话次数:每个销售人员的平均通话次数。
在这种情况下,数字应该返回:2
计算平均值几乎是基础数学知识。这只是计算/添加和除以行数的问题。但是在 MySQL 中,如果没有为 WHERE CLAUSE 提供的特定值,我无法弄清楚我将如何做到这一点?我的意思是,如果我想计算 34 位销售员的平均值,我会指定 WHERE salespersonid=sp34
。如果我想计算客户端 2345 的平均调用次数,我会执行 WHERE clientid=c2345
但在这里我想计算平均值的平均值。
最佳答案
这个怎么样:
SELECT COUNT(clientid) / COUNT(DISTINCT(clientid)) AS avg_calls_per_client
FROM calls_table
WHERE {date criteria}
SELECT COUNT(salespersonid) / COUNT(DISTINCT(salespersonid)) AS avg_calls_per_salesperson
FROM calls_table
WHERE {date criteria}
关于MySQL Avg Count With Where 和 Group By,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51504135/