gpt4 book ai didi

sql - 分组并且在理解上有困难

转载 作者:行者123 更新时间:2023-12-04 13:43:03 25 4
gpt4 key购买 nike

我正在查看我在 Access 数据库中没有创建的一些 SQL 查询。

其中一个 SQL 查询是这样的:

select column1 from table1 group by column1 having count(*)>1

此查询的目的是查找 column1 中的值出现不止一次。我可以验证此查询是否正常工作并返回出现多次的列值。

然而,我不明白为什么这个查询有效。根据我的理解使用 group by将删除重复的字段。例如,如果 column1 有
    column1
apple
mango
mango

group by (column1)将导致
    column1
apple
mango

此时,如果我们执行 having count(*)>1having count(column1)>1 ,它应该不会返回任何结果,因为 group by 已经删除了重复字段。但很明显,我错了,因为上面的 SQL 语句确实给出了准确的结果。

你能告诉我我理解的问题吗?

编辑 1:

除了接受的答案,我 this处理 SQL 操作顺序的文章确实帮助了我的理解

最佳答案

group by不只是删除重复值 - 它为 group by 子句的每个不同值返回一行,并允许您为每个这样的唯一值应用聚合函数。

在这个查询中,您实际上查询了 column1 的值以及 count(*) 的结果每个 column1 的值 ,然后,您使用 having子句仅返回 column1 的值有 count(*)大于 1。

关于sql - 分组并且在理解上有困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54059291/

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