概述
- 在
MySQL中,分组和分组筛选是使用GROUP BY和HAVING子句来实现的 GROUP BY用于将查询结果按一列或多列分组HAVING用于在分组后的结果中进一步筛选
group by
- 按部门分组并计算每个部门的平均薪水
|
1 2 3 |
SELECT dept_id, AVG(salary) AS avg_salary FROM employees GROUP BY dept_id; |
having
-
规则:
having必须和group by一起结合使用
-
按部门分组并筛选出平均薪水大于5500的部门
|
1 2 3 4 |
SELECT dept_id, AVG(salary) AS avg_salary FROM employees GROUP BY dept_id HAVING avg_salary > 5500; |
- 按客户分组并计算总订单金额,筛选总订单金额大于200的客户
|
1 2 3 4 |
SELECT customer_id, SUM(amount) AS total_amount FROM orders GROUP BY customer_id HAVING total_amount > 200; |
having和where
WHERE子句用于在分组和聚合之前过滤记录。它不能包含聚合函数where用在group by之前
HAVING子句用于在分组和聚合之后过滤记录。它可以包含聚合函数having用在group by之后
|
1 2 3 4 5 |
SELECT product_id, SUM(amount) AS total_amount FROM sales WHERE amount >= 150 GROUP BY product_id HAVING total_amount > 200; |
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 视图10/28
- ♥ union && limit10/26
- ♥ 表_约束-主键10/26
- ♥ 表_约束-外键10/27
- ♥ 事务_介绍 && 事务隔离11/01
- ♥ 数据处理函数:多行处理函数10/24
热评文章
- union && limit 0
- 事务_介绍 && 事务隔离 0
- 连接查询-子查询 0
- 数据库设计三范式简介 0
- 连接查询-笛卡尔积 || 连接方式 0
- 视图 0