count()是否正确用于我的查询?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了count()是否正确用于我的查询?相关的知识,希望对你有一定的参考价值。

查找在第3场比赛中只赢得1场比赛的所有球队(1列,4行)

我创建此查询的过程是,我需要为每个团队计算(WonGame)。这个数字不能等于1。但是当我运行查询时,我没有任何结果(我应该有4个团队)。

对我的查询进行实验,我将equals更改为大于,并返回了8个结果。所以我不明白为什么等于1不会返回结果。

我还检查了我的数据,确实有4支球队在第3场比赛中只有一场比赛。

select Teams.TeamName
from Teams
join Bowlers on Teams.TeamID = Bowlers.TeamID
join Bowler_Scores on Bowlers.BowlerID = Bowler_Scores.BowlerID
join Match_Games on Bowler_Scores.GameNumber = Match_Games.GameNumber
join Tourney_Matches on Match_Games.MatchID = Tourney_Matches.MatchID
where Tourney_Matches.TourneyID = 3
group by Teams.TeamName
having count(Bowler_Scores.WonGame) = 1;

enter image description here

答案

我只能推测您的数据的真实情况。但是,此表达式令人怀疑:

having count(Bowler_Scores.WonGame) = 1;

做您想要的。这将计算非NULL值的数量。大概WonGame是获胜者的某个值,例如“ 1”或“ W”。如果值为1,则正确的表达式为:

having sum(Bowler_Scores.WonGame) = 1

这只是推测,尽管没有更好地描述您的数据。

以上是关于count()是否正确用于我的查询?的主要内容,如果未能解决你的问题,请参考以下文章

MySql,我不确定我的索引是不是正确,或者我是不是可以提高查询速度?

SQL - 查询 - max(count())

组合 COUNT 查询 [重复]

Django查询过滤器空

Prometheus查询过滤器不适用于OR过滤器

mongodb count 导致不正确的数量(mongodb count 一个坑)