group by 必须写所有返回的参数吗
时间: 2023-08-26 21:33:51 浏览: 60
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
在使用 GROUP BY 时,必须写所有未聚合的列(也称为“非聚合列”或“分组列”),以便将结果集分组。这是因为 GROUP BY 子句根据指定的列将结果分组,然后对每个组执行聚合函数,例如 SUM、AVG、COUNT 等。如果您不将所有非聚合列包含在 GROUP BY 子句中,则会出现以下错误:
```
ERROR: column "non_aggregated_column" must appear in the GROUP BY clause or be used in an aggregate function
```
这是因为您试图使用未聚合的列进行分组,但未将其包含在 GROUP BY 子句中。因此,您需要确保所有返回的列都在 GROUP BY 子句中列出,或者使用聚合函数对非聚合列进行聚合。
阅读全文