理解 SQL 中的“不是单组组函数”错误
在 SQL 中,单组组函数,例如MAX()、SUM() 或 AVG() 应用于指定分组列中具有相同值的一组行。但是,如果您尝试将各个列表达式与组函数一起包含在 SELECT 列表中,并且不在 GROUP BY 子句中包含所有这些表达式,您将遇到“不是单组组函数”错误。
问题说明
在示例 SQL 语句中,您提供:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
查询尝试计算每个唯一 SSN 的 TIME 总和的最大值,然后返回与该最大值关联的 SSN。但是,此查询有一个基本问题:
解决方案
解决此问题错误,您有三个选项:
使用选项的示例查询2
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
此查询将按 SSN 和 TIME 对结果进行分组,允许您检索与每个 SSN 的最大 TIME 总和关联的 SSN。
以上是为什么我的 SQL 查询会产生'不是单组组函数”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!