MySQL Avg Count With Where 和 Group By

标签 mysql count average

此表保留销售人员调用的电话的记录:

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

有了这张表,我想计算两件事:

  1. 每个客户的平均调用次数:每个客户的平均调用次数。

    在这种情况下,数字应该返回:3

  2. 每个销售人员的平均通话次数:每个销售人员的平均通话次数。

    在这种情况下,数字应该返回: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/

相关文章:

php - 计算行数时出错

python - 计数 1's in a n x n array of 0' 和 1

PostgreSQL - 使用 AVG、MAX 和 MIN 进行规范化

php - 更新两个表中的匹配列

php - 我不明白我的代码中的错误,它是将注册的用户值存储在数据库中,但它显示页面中的错误

同一表中不同用户组的mysql数据库架构

javascript - 处理大量数字时函数会变慢

r - 计算向量中不同值的数量

ruby-on-rails - Ruby on Rails Controller 测试失败

c - 在无需声明巨大的2D数组的情况下找到平均尺寸分​​布的有效方法是什么?