SQL 函数“不是单组分组函数”解释
在 SQL 中,当使用 MAX 等分组函数时,该函数必须应用于单个数据组。这意味着,如果您想要查找特定列的最大值,您还必须按该列对数据进行分组。
但是,如果您尝试将分组函数应用于未分组的表达式,您将收到错误“不是单组组函数”。例如,假设您有一个名为 downloads 的表,其中包含客户下载的列:
SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN
此查询有效,因为 MAX 函数应用于一组数据(通过 SSN 下载) 。但是,如果您尝试将 SSN 列添加到 select 语句中,如下所示:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN
您将收到“not a single-group group function”错误,因为 SSN 列不包含在GROUP BY 子句。这意味着 SQL 无法确定 SSN 列属于哪组数据,因此无法对其应用 MAX 函数。
要解决此错误,您有三个选项:
SELECT SSN, MAX(SUM(TIME)) FROM downloads GROUP BY SSN, TIME
这将为您提供每个唯一 SSN 和时间组合的最大下载总时间。
以上是为什么我的 SQL 查询返回'不是单组组函数”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!