【问题标题】:Either an aggregate function or the GROUP BY clause聚合函数或 GROUP BY 子句
【发布时间】:2013-08-31 19:51:17
【问题描述】:

我使用了以下查询:

select Patients.LastName, 
  avg (PatientVisits.Pulse)as pulse,
  avg (patientvisits.depressionlevel)as depressionLevel  
from Patients 
left join PatientVisits 
   on Patients.PatientKey=PatientVisits.PatientKey

但我收到以下错误:

消息 8120,级别 16,状态 1,行 1 列“Patients.LastName”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

【问题讨论】:

    标签: sql sql-server join average


    【解决方案1】:

    您需要在查询中添加GROUP BY

    select Patients.LastName, 
       avg (PatientVisits.Pulse)as pulse,
       avg (patientvisits.depressionlevel)as depressionLevel  
    from Patients 
    left join PatientVisits 
      on Patients.PatientKey=PatientVisits.PatientKey 
    GROUP BY Patients.LastName
    

    SQL Server 要求 SELECT 列表中未包含在聚合函数中的所有列都包含在 GROUP BY 中。由于您在聚合数据时尝试返回 Patients.LastName,因此您必须将该列包含在 group by 中。

    【讨论】:

    • 谢谢,效果很好。我不敢相信我错过了这么简单的东西。
    猜你喜欢
    • 2012-12-07
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多