SQL中的分组依据和排序依据之间的差异

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 15 可能 2024
Anonim
SQL for Data Science | 数据科学的SQL 教程
视频: SQL for Data Science | 数据科学的SQL 教程

内容


SQL允许组织查询获得的数据。我们有两个子句用于组织从查询中获得的数据,即Group By和Order By子句。区分Group By和Order By子句的重点是 通过...分组 当我们想要将聚合函数应用于多个元组和 订购依据 当我们要对查询获得的数据进行排序时,使用子句。让我们借助下面显示的比较表来讨论Group By子句和Order By子句之间的一些区别。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础通过...分组订购依据
基本的Group By用于形成元组集合的Group。Order By用于按排序形式排列作为查询结果获得的数据。
属性 聚合函数下的属性不能在Group By子句中。聚合下的属性可以在“按条款排序”中。
地面根据属性值之间的相似性进行。根据升序和降序执行。

按条款分组的定义

平均函数(例如avg,min,max,sum,count)应用于单个元组集。如果您想将聚合函数应用于元组集合,则可以使用Group by子句。 Group by子句对具有相同属性值的元组进行分组。

有一件事情要 记得 关于Group By子句,请确保 属性 在下面 通过...分组 子句必须出现在 选择 子句但是 在一个 聚合函数。如果Group By子句包含的属性不在SELECT子句下,或者如果它在SELECT子句下但在聚合函数下,则查询将变得错误。因此,可以说Group By子句始终与SELECT子句一起使用。


让我们以一个示例来了解Group By子句。

从Department_ID的“教师组”中选择“部门_ID”,“ avg(薪水)”作为“ avg_salary”。

您可以看到,最初形成的中间结果将部门分组。

接下来,将聚合函数avg应用于每个部门组,结果如下所示。

按条款定单的定义

Order By子句用于按查询顺序显示查询获得的数据。与Group By子句类似,Order By子句也与SELECT子句一起使用。如果您未提及排序顺序,则Order By子句将按升序对数据进行排序。您可以将升序指定为 升序 和降序为 描述.

让我们借助以下示例了解Order By子句的工作。我们有一个教师表,我将对教师表的两列Department_Id和Salary进行排序。

选择Department_ID,“按教师订单的薪水按Department_Id asc,薪水描述”。


您可以看到,它首先按升序排列Department _ID,然后按降序排列同一部门的薪水。

  1. Group By子句将SELECT子句下的关系中的元组集进行分组。另一方面,Order By子句按升序或降序对查询结果进行排序。
  2. 聚合功能下的属性不能在Group By子句下,而聚合功能下的属性可以在Order By子句下。
  3. 元组的分组是基于元组的属性值之间的相似性完成的。另一方面,排序或排序是基于升序或降序进行的。

结论:

如果要形成元组集合的组,则必须使用Group By子句。如果您想按升序或降序排列一组元组中的单列或多列数据,则必须使用Order By子句。