首页 >数据库 >mysql教程 >SQL 中没有聚合函数时 GROUP BY 如何工作?

SQL 中没有聚合函数时 GROUP BY 如何工作?

Barbara Streisand
Barbara Streisand原创
2024-12-25 08:35:23400浏览

How Does GROUP BY Work Without Aggregate Functions in SQL?

不使用聚合函数的 Group By:了解机制

GROUP BY 是一个强大的 SQL 子句,它允许我们基于以下条件对数据进行分组和汇总:指定的列。虽然 SUM、COUNT 和 AVG 等聚合函数通常与 GROUP BY 一起使用,但也可以在不使用聚合函数的情况下使用 GROUP BY。理解这个概念对于充分利用 GROUP BY 的功能至关重要。

在不使用聚合函数的情况下使用 GROUP BY 时,必须了解每个组将在输出中产生一行。未包含在 GROUP BY 子句中的列的值将针​​对组中的每一行有效地重复。

考虑 EMP 表:

场景 1:无效的 GROUP BY 表达式

此查询失败并出现错误ORA-00979,因为 Sal 未包含在 GROUP BY 子句中。每行都有不同的 sal 值,从而导致每个员工有多个行。

场景 2:有效的 GROUP BY 表达式

此查询有效因为它按名称对行进行分组,这确保了每个员工的行都是唯一的。对于属于同一员工的每一行,sal 的值将重复。

场景 3:无效的 GROUP BY 表达式

此查询无效,因为它尝试按 sal 对行进行分组,这将导致具有相同信息的员工出现多行salary.

场景 4:无效的 GROUP BY 表达式

此查询无效,因为 GROUP BY 子句中的列顺序必须与列顺序匹配在 SELECT 子句中。

场景 5:有效的 GROUP BY 表达式

此查询有效,因为 GROUP BY 子句中的列顺序与 SELECT 子句中的列顺序匹配。结果将为 empno、ename 和 sal 的每个不同组合包含一行。

总之,不带聚合函数的 GROUP BY 通过对共享相同值的行进行分组来删除指定列中的重复项。但是,未包含在 GROUP BY 子句中的所有列将在输出行中具有重复的值。

以上是SQL 中没有聚合函数时 GROUP BY 如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn