gpt4 book ai didi

mysql - SQL 中的 Group By 和having 出现问题

转载 作者:行者123 更新时间:2023-11-29 10:23:23 24 4
gpt4 key购买 nike

我正在尝试学习 Group By 和having,但我似乎无法理解这里发生了什么。我使用了 w3shools SQL Tryit 编辑器。

我创建的表是:

name     age     country
------------------------
Sara 17 America
David 21 America
Jared 27 America
Jane 54 Canada
Rob 32 Canada
Matthew 62 Canada

我使用的查询:

select 
sum(age), country
from
NewTable
group by
country
having
age>25;

我希望查询按国家/地区对信息进行分类,并使用年龄>25 过滤器来创建结果,但以下是输出:

sum(age)     country
--------------------
65 America
148 Canada

发生什么事了?!结果是美国和加拿大各年龄段人口的总和。

最佳答案

您缺少的部分特定于 having 关键字。在查询中使用having 子句将在分组之后应用于数据集。

听起来您希望在分组之前将年龄小于 25 岁的记录从查询中排除。但是,它的工作方式是having 子句排除每个组的总年龄,总年龄超过 25 岁。

如果您想在计算年龄总和之前排除个别记录,您可以执行以下操作(使用在分组之前应用的 where 子句):

select sum(age), country from NewTable where age > 25 group by country;

关于mysql - SQL 中的 Group By 和having 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812035/

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