没有聚合功能的 GROUP BY 子句的任何原因?

2021-12-27 00:00:00 sql group-by aggregate mysql

我正在(彻底)学习 SQL 并且遇到了 GROUP BY 子句.

I'm (thoroughly) learning SQL at the moment and came across the GROUP BYclause.

GROUP BY 根据您提供的参数对结果集进行聚合或分组.如果在查询中使用此子句,则可以对结果集执行聚合函数以查找结果集的统计信息,例如查找平均值 (AVG()) 或频率 (COUNT()).

GROUP BY aggregates or groups the resultset according to the argument(s) you give it. If you use this clause in a query you can then perform aggregate functions on the resultset to find statistical information on the resultset like finding averages (AVG()) or frequency (COUNT()).

我的问题是:没有附带聚合函数的 GROUP BY 语句是否有用?

My question is: is the GROUP BY statement in any way useful without an accompanying aggregate function?

更新使用 GROUP BY 作为 DISTINCT 的同义词是(可能)一个坏主意,因为我怀疑它更慢.

Update Using GROUP BY as a synonym for DISTINCT is (probably) a bad idea because I suspect it is slower.

推荐答案

GROUP BY 语句在没有附带聚合函数的情况下是否有用?

is the GROUP BY statement in any way useful without an accompanying aggregate function?

在这种情况下使用 DISTINCT 将是同义词,但您想要/必须定义 GROUP BY 子句的原因是为了能够定义HAVING 子句细节.

Using DISTINCT would be a synonym in such a situation, but the reason you'd want/have to define a GROUP BY clause would be in order to be able to define HAVING clause details.

如果你需要定义一个 HAVING 子句,你必须定义一个 GROUP BY - 你可以不要与 DISTINCT 结合使用.

If you need to define a HAVING clause, you have to define a GROUP BY - you can't do it in conjunction with DISTINCT.

相关文章