gpt4 book ai didi

mysql - having 子句中的最大计数多个最大值

转载 作者:行者123 更新时间:2023-11-30 00:16:10 28 4
gpt4 key购买 nike

表:uni(类(class),符号)和其他一些列...想要选择最大失败次数相同的所有类(class)。

我的代码返回一个空集。这里有一个非常相似的问题,但答案没有涉及如果有多个具有相同最大值的情况下如何获得最大值。

选择类(class),计数(符号)为失败来自大学其中符号 = 'F'GROUP BY 类(class)失败 = max(fails);

最佳答案

这是学习 SQL 的人中很常见的错误。在大多数数据库中,您的查询会失败,因为您无法获取 count()max()。我很惊讶它能在 MySQL 中运行,但确实如此( here 是 SQL Fiddle)。

无论如何,您都需要一个子查询:

SELECT course, count(symbol) as fails
FROM uni
WHERE Symbol = 'F'
GROUP BY Course
HAVING fails = (SELECT max(fails)
FROM (SELECT count(symbol) as fails
FROM uni
WHERE Symbol = 'F'
GROUP BY course
) f
);

不优雅,但应该可以。您还可以将 having 子句编写为:

HAVING fails = (SELECT count(symbol) as fails
FROM uni
WHERE Symbol = 'F'
GROUP BY course
ORDER BY fails DESC
LIMIT 1
)

顺便说一句,我对你的表述有一些的同情。 SQL 声称是一种描述性语言,编码器描述输出,编译器找出执行查询的最佳方式。这个理想只是部分正确。

关于mysql - having 子句中的最大计数多个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642011/

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