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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (302)

我有一个销售表,需要计算满足案例时的平均通话时间。我正在为每个月的每一天进行查询。

我的疑问是:

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')

扫码关注云+社区

领取腾讯云代金券