sql语句中:group by having 与 having group by 的区别
时间: 2023-08-30 09:10:39 浏览: 103
聚集(分组)函数-聚集(分组)函数
在 SQL 中,GROUP BY 和 HAVING 是两个用于聚合数据的关键字。
GROUP BY 用于将数据按照一个或多个列进行分组,并对每组数据进行聚合操作,如求平均值、总和等。
HAVING 则是在 GROUP BY 分组后对数据进行筛选,只保留满足某些条件的分组结果。HAVING 可以使用聚合函数,如 SUM、AVG 等来对分组后的数据进行筛选。
因此,GROUP BY 与 HAVING 的顺序很重要,如果将它们的顺序颠倒,会导致语法错误。
例如,下面的 SQL 语句是正确的:
```
SELECT column1, AVG(column2)
FROM table
GROUP BY column1
HAVING AVG(column2) > 10
```
这个 SQL 语句将数据按照 column1 进行分组,并计算每组 column2 的平均值,然后只保留平均值大于 10 的分组结果。
而下面的 SQL 语句是错误的:
```
SELECT column1, AVG(column2)
FROM table
HAVING AVG(column2) > 10
GROUP BY column1
```
这个 SQL 语句将会产生错误,因为 HAVING 必须跟在 GROUP BY 之后。
阅读全文