gpt4 book ai didi

SQL 不是单组组函数

转载 作者:行者123 更新时间:2023-12-03 07:50:17 24 4
gpt4 key购买 nike

当我运行以下 SQL 语句时:

SELECT MAX(SUM(TIME))
FROM downloads
GROUP BY SSN

它返回客户下载的最大总和值,但是,如果我尝试通过将其添加到 select 语句中来查找该最大值所属的社会保险号:
SELECT SSN, MAX(SUM(TIME))
FROM downloads
GROUP BY SSN

我收到以下错误:

not a single-group group function



我不明白为什么它会抛出这个错误。谷歌搜索提出了以下操作:

从 SELECT 列表中删除 group 函数或单个列表达式,或者添加一个 GROUP BY 子句,其中包括列出的所有单个列表达式

从我认为这是说
- 删除分组功能会使总和值无效
- 删除单个列表达式 (SSN) 只会给我最大总和
- 不确定第三部分。

任何人都可以指导正确的方向吗?

-托梅克

编辑:此数据库中的时间是指下载的次数

最佳答案

那么问题简单地说就是您查询中特定 SSN 的 SUM(TIME) 是单个值,因此它反对 MAX,因为它没有意义(单个值的最大值是没有意义的)。

不确定您使用的是什么 SQL 数据库服务器,但我怀疑您想要更像这样的查询(使用 MSSQL 背景编写 - 可能需要一些转换为您正在使用的 sql 服务器):

SELECT TOP 1 SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
ORDER BY 2 DESC

这将为您提供总时间最长的 SSN 及其总时间。

编辑 - 如果你有多个相同的时间并且想要它们,你会使用:
SELECT
SSN, SUM(TIME)
FROM downloads
GROUP BY SSN
HAVING SUM(TIME)=(SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN))

关于SQL 不是单组组函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com