在`WHERE`子句中,不能使用聚合函数(如`SUM`、`AVG`、`MAX`、`MIN`和`COUNT`)来过滤数据。因为`WHERE`子句是在数据分组之前进行过滤的,而聚合函数是在数据分组之后进行计算的。如果要在过滤数据之后再进行聚合计算,可以使用`HAVING`子句。
例如,下面的查询语句是错误的:
```sql
SELECT column1, SUM(column2)
FROM table_name
WHERE SUM(column2) > 100
GROUP BY column1;
```
正确的写法应该是:
```sql
SELECT column1, SUM(column2)
FROM table_name
GROUP BY column1
HAVING SUM(column2) > 100;
```
这样就会先对数据进行分组,然后再对分组结果进行聚合计算,并过滤掉那些`column2`列的和小于等于100的分组结果,只返回符合条件的分组结果。