WHERE和HAVING的区别
时间: 2023-08-10 20:11:03 浏览: 88
where和having区别
在 SQL 中,WHERE 和 HAVING 是用于筛选数据的两个关键字。它们的主要区别在于 WHERE 用于筛选行,而 HAVING 用于筛选聚合函数的结果。
具体来说,WHERE 子句通常用于在从表中选择符合特定条件的行。例如,如果要选择客户表中所有名字为“John”的客户记录,则可以使用以下 SQL 语句:
```
SELECT * FROM customers WHERE name = 'John';
```
HAVING 子句用于对聚合函数的结果进行筛选,例如对 GROUP BY 子句分组后的结果进行过滤。例如,如果要选择订单总金额大于 1000 的客户,则可以使用以下 SQL 语句:
```
SELECT customer_id, SUM(order_total) as total FROM orders GROUP BY customer_id HAVING total > 1000;
```
在上面的示例中,WHERE 子句不能用于筛选聚合函数的结果,因为 SUM(order_total) 是一个聚合函数,它只能在 HAVING 子句中使用。因此,在使用聚合函数时,必须使用 HAVING 子句来筛选结果。
阅读全文