【发布时间】:2013-11-20 16:07:32
【问题描述】:
我之前看到过这个问题,但我看到的解决方案对我不起作用。所以我要问我的方案....我不断收到 Msg 130, Level 15, State 1, Line 2 的错误 当我尝试执行查询时,无法对包含聚合或子查询的表达式执行聚合函数。我已经尝试了几次尝试。这是我尝试过的
--Not working
Select Name,
coalesce(COUNT(CASE WHEN CompletedCall IS NULL THEN AVG(CallAttempt) END), 0)
FROM hotwire.calldatabase
GROUP BY Name
ORDER BY Name
--This is also not working
Select Name,
COUNT(CASE WHEN CompletedCall IS NULL THEN AVG(CallAttempt) Else 0 END)
FROM hotwire.calldatabase
GROUP BY Name
ORDER BY Name
--This is also not working
Select Name,
COUNT(CASE WHEN CompletedCall IS NULL THEN AVG(CallAttempt) Else null END)
FROM hotwire.calldatabase
GROUP BY Name
ORDER BY Name
【问题讨论】:
-
你想做什么?您的预期输出是什么?
-
我想要呼叫人的姓名(在姓名字段中),如果 CompletedCall 为空(意味着他们呼叫的人没有接听电话),那么平均呼叫尝试次数。这有助于澄清吗?
-
如果THE CompletedCall 为空是什么意思?你肯定有不止一个记录,否则你得到的平均值是多少?但是您不能决定根据 ONE 行的情况来获得平均值。基本上,你说的对我来说没有任何意义。您是说要对所有 ComplatedCall 为空的记录的呼叫尝试的名称进行平均吗? 那个查询是可能的并且是有意义的。
-
@aquinas 是的,这正是我所追求的!!!!!
标签: sql-server count average