不使用聚合函数的 GROUP BY 解释
在不使用聚合函数的情况下使用 GROUP BY 子句时,必须了解将行折叠为的概念单行。在这种情况下,子句的操作方式是将特定字段具有相同值的多行合并为一行。然而,此过程提出了应如何处理其他字段中的冲突值的问题。
如您提供的示例所示,有选择地包含或排除 GROUP BY 子句中的字段会产生有效或无效的结果。当 GROUP BY 子句中的列数等于 SELECT 语句中选择的列数时,会生成有效结果。
例如,在查询“SELECT ename, sal FROM emp GROUP BY ename, sal,”SELECT 和 GROUP BY 子句中同时存在“ename”和“sal”会返回预期输出。
无效当 GROUP BY 子句中的列数与 SELECT 语句中选择的列数不匹配时,就会出现结果。在查询“SELECT ename, sal FROM emp GROUP BY ename;”中和“SELECT ename, sal FROM emp GROUP BY sal;”,所选列之一缺少分组表达式会触发错误消息“不是 GROUP BY 表达式”。
要避免此类错误,请记住当使用不带聚合函数的 GROUP BY 时,GROUP BY 子句中的列数必须始终与 SELECT 语句中选择的列数匹配。这确保系统有关于如何组合重复值并产生有效结果的明确说明。
以上是如果没有聚合函数,GROUP BY 如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!