MySQL:如何找到特定行的平均值?

标签 mysql

我有一个销售表,需要计算遇到案例时的平均调用时间。我正在对该月的每一天进行查询。

我的查询是

SELECT AVG(case when (outcome= 'Sale1' or outcome='Sale2') then call_length else 0 end) as avg_call_length
FROM SALES 
WHERE year(call_date)='2018' and month(call_date)='7' and day(call_date)='30'

假设我有 100 条记录,那么 avg_call_length 除以 100,而不是有多少条记录是 Sale1 或 Sale2。如何编写正确的查询?

最佳答案

删除case并将条件移至where:

SELECT AVG(call_length) as avg_call_length
FROM SALES 
WHERE date(call_date) = '2018-07-30'
AND outcome IN ('Sale1', 'Sale2')

请注意对条件进行编码的更简单方法。

关于MySQL:如何找到特定行的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643333/

相关文章:

MySQL查询: select all active in a table but accept an inactive which id = 1

mysql - 在mysql中使用不同的WHERE条件更新同一个表中的多个字段

mysql - 数据库 :how to separate sql queries coming from two tables?

mysql - Mysql 中的默认键约束是什么,或者单独使用 "key"关键字有什么作用?

php - 在 php 中以编程方式声明和初始化变量

mysql - 一对一关系(1 :1)

PHP/HTML 使用两个表并获取要在 html 表中使用的名称

mysql - Enterprise Architect - 用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序 -2147217900/'80040E14'

php - 如何从数据库中获取日期到html datepicker

php - 使用输入框搜索数据库并在同一页面上显示结果