GROUP BY 与 ORDER BY17 Mar 2025 | 5 分钟阅读 本文详细解释了 GROUP BY 和 ORDER BY 子句的完整概述。它们主要用于组织通过 SQL 查询获得的数据。这些子句之间的差异是学习 SQL 时最常见的卡壳点之一。它们之间的主要区别在于,GROUP BY 子句适用于我们希望对多组行使用聚合函数时。ORDER BY 子句适用于我们希望以排序顺序获取查询获得的数据时。在进行比较之前,我们首先了解这些 SQL 子句。 ![]() ORDER BY 子句ORDER BY 子句 在 SQL 查询中用于将查询返回的数据按升序或降序排序。如果省略排序顺序,它默认按升序对汇总结果进行排序。ORDER BY 子句,与 GROUP BY 子句一样,可以与 SELECT 语句结合使用。ASC 表示升序,而 DESC 表示降序。 以下是在 SQL 语句中使用 ORDER BY 子句的语法 让我们通过以下示例了解 ORDER BY 子句的工作原理。假设我们有一个表 developer,其中包含以下数据 ![]() 我们可以看到这些结果没有以有组织的方式显示。假设我们希望根据 state 列 按升序或降序组织结果。在这种情况下,我们需要 ORDER BY 命令才能获得所需的结果。我们可以通过执行以下命令来完成此操作 这是我们将获得所需结果的输出 ![]() GROUP BY 子句GROUP BY 子句 在 SQL 查询中用于组织具有相同属性值的数据。通常,我们将其与 SELECT 语句 一起使用。始终要记住,我们必须将 GROUP BY 子句放在 WHERE 子句 之后。此外,它位于 ORDER BY 子句之前。 我们经常可以将此子句与聚合函数(如 SUM、AVG、MIN、MAX 和 COUNT)结合使用,以从数据库生成汇总报告。重要的是要记住,此子句中的属性必须出现在 SELECT 子句中,而不是在聚合函数下。如果我们这样做,查询将不正确。因此,GROUP BY 子句总是与 SELECT 子句结合使用。GROUP BY 子句的查询是分组查询,它为每个分组对象返回一行。 以下是在 SQL 语句中使用 GROUP BY 子句的语法 让我们通过一个示例了解 GROUP BY 子句的工作原理。这里我们将用同一个表进行演示。 假设我们想知道特定州开发人员的平均工资,并根据 state 列按降序组织结果。在这种情况下,我们需要 GROUP BY 和 ORDER BY 命令才能获得所需的结果。我们可以通过执行以下命令来完成此操作 此查询最初形成了一个已对状态进行分组的中间结果。接下来,对每个状态组执行 AVG 函数,然后按降序对结果进行排序,最后我们将获得如下所示的所需结果 ![]() GROUP BY 和 ORDER BY 的主要区别以下是 Group By 和 Order By 子句之间的主要区别
GROUP BY 与 ORDER BY 比较表以下比较图快速解释了它们的主要区别
结论本文对 GROUP BY 和 ORDER BY 子句进行了比较。这两个子句都是非常有用的 SQL 数据库功能。当我们希望形成一组行时,我们使用 GROUP BY 子句。如果我们要根据特定列按升序或降序组织数据,我们使用 ORDER BY 子句。它们之间没有任何关系,因为它们都用于两个不同的目的。但是,我们可以将它们组合起来以实现某些特殊目的,或者根据情况单独使用它们。我们只能将这些子句与 SELECT 语句一起使用。 下一个主题WHERE 与 HAVING |
我们请求您订阅我们的新闻通讯以获取最新更新。