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

时间:2018-08-01 22:56:59

标签: 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有多少条记录。如何编写正确的查询?

1 个答案:

答案 0 :(得分:1)

删除case并将条件移至where

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

请注意编码条件的简单方法。