gpt4 book ai didi

sql - 当我阅读其他关于此的帖子时,我仍然看不出 GROUP BY 和 ORDER BY 在 SQL 中的区别。它是什么?

转载 作者:行者123 更新时间:2023-12-02 07:51:53 25 4
gpt4 key购买 nike

我已经就这个问题启动了自己的线程,以便减少将其发布到其他线程的开销。我在 SQL 中很难理解 GROUP BY 和 ORDER BY 之间的区别。我知道已经有关于此的线程,但它们没有为我提供有用的答案。以下是我刚刚在其他线程中多次看到的相同答案的大致内容:

ORDER BY 根据特定列中的值对行进行排序,而 GROUP BY 将特定列中具有相同值的行分组以帮助聚合函数。

对我来说,这似乎只是用两种不同的措辞来描述相同的事物。我基本上需要完全解释这个。问题在于 ORDER BY 以与 GROUP BY 相同的方式“分组事物”,可能唯一的异常(exception)是 GROUP BY 可能无法保证存在某种特殊顺序。此外,我只是看不出 GROUP BY 对 ORDER BY 的聚合函数有何帮助。

请以不同于大多数人的方式解释差异。谢谢!

最佳答案

这可能最好用一个例子来说明。考虑一个人表:

ID  Gender  Name
1 M Fred
2 M Bob
3 F Jane
4 M Alex
5 F Mary

运行:

SELECT * FROM person ORDER BY gender

你得到:

ID  Gender  Name
3 F Jane
5 F Mary
1 M Fred
2 M Bob
4 M Alex

但是运行:

SELECT gender, COUNT(1) FROM person GROUP BY gender

你得到:

Gender  COUNT(1)
M 3
F 2

您需要了解的另一部分是WHEREHAVING 之间的区别。考虑:

SELECT gender, COUNT(1) FROM person WHERE name = 'Bob' GROUP BY gender

结果:

Gender  COUNT(1)
M 1

但是:

SELECT gender, COUNT(1) FROM person GROUP BY gender HAVING COUNT(1) > 2

结果:

Gender  COUNT(1)
M 3

基本上,ORDER BY 更改行的顺序(然后可以将其“输送”到聚合中),而 HAVING 过滤聚合结果。换句话说,WHERE 影响 GROUP BY 的输入,HAVING 影响输出。

关于sql - 当我阅读其他关于此的帖子时,我仍然看不出 GROUP BY 和 ORDER BY 在 SQL 中的区别。它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3327802/

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