mysql having
时间: 2023-03-28 08:04:00 浏览: 80
MySQL 的 HAVING 子句用于筛选 GROUP BY 子句分组后的结果集,它可以让我们筛选出满足某些条件的分组结果。例如,我们可以使用 HAVING 子句来筛选出分组后的平均值大于 80 的记录。
相关问题
mysql HAVING
HAVING子句是在GROUP BY子句之后使用的,用于对分组后的结果进行筛选。它可以根据聚合函数的结果来过滤数据。
以下是一个使用HAVING子句的MySQL查询示例:
```sql
SELECT column1, column2, aggregate_function(column3)
FROM table
GROUP BY column1, column2
HAVING condition;
```
在这个示例中,我们首先使用SELECT语句选择需要显示的列和聚合函数。然后使用GROUP BY子句将结果按照指定的列进行分组。最后,在HAVING子句中,我们可以使用聚合函数的结果来筛选分组后的数据。
请注意,HAVING子句中的条件必须是基于聚合函数的结果,而不是原始列的值。这是因为HAVING子句是在分组后的结果上进行筛选,而不是在原始数据上进行筛选。
mysql having用法
`HAVING` 是用于在执行 `GROUP BY` 操作后筛选结果集的关键字。它通常与 `GROUP BY` 一起使用,`GROUP BY` 用于将结果集按照某个字段分组,`HAVING` 用于筛选分组后的结果集。
语法如下:
```
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
```
在 `HAVING` 中可以使用聚合函数,如 `SUM()`、`AVG()`、`MAX()`、`MIN()` 等,用于对分组后的结果进行计算。
例如,统计每个部门的平均工资,并只显示平均工资大于 5000 的部门:
```
SELECT dept_name, AVG(salary)
FROM employee
GROUP BY dept_name
HAVING AVG(salary) > 5000;
```
注意,`HAVING` 只能作用于分组后的结果集,因此必须先使用 `GROUP BY` 分组,否则会产生错误。
阅读全文
相关推荐









