【问题标题】:Average & Count Together平均和一起计数
【发布时间】: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


【解决方案1】:

根据您的上述评论:

Select Name, AVG(CallAttemps)
FROM hotwire.calldatabase
WHERE CompletedCall IS NULL
GROUP BY Name
ORDER BY Name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多