sql中having和where的用法-SQL
WHERE 和 HAVING 子句在 SQL 中的用法
WHERE 和 HAVING 子句在 SQL 中用于过滤数据集,但它们在处理上下文和目标方面有所不同:
WHERE 子句:
- WHERE 子句用于在 SELECT 语句的 FROM 之后筛选行。
- 它根据每个行的条件对基础表或视图中的行进行评估。
- 它用于过滤基础数据,从而影响哪些行被包括在最终结果中。
示例:
SELECT * FROM employees WHERE salary > 50000;
登录后复制
此查询返回所有工资大于 50,000 美元的员工。
HAVING 子句:
- HAVING 子句用于在 GROUP BY 语句中筛选组。
- 它根据组的聚合结果对组进行评估。
- 它用于过滤组,从而影响哪些组被包括在最终结果中。
示例:
SELECT department, SUM(salary) AS total_salary FROM employees GROUP BY department HAVING total_salary > 100000;
登录后复制
此查询返回所有部门的总工资,其中总工资大于 100,000 美元。
主要区别:
- 处理上下文:WHERE 子句处理单个行,而 HAVING 子句处理组。
- 评估目标:WHERE 子句评估单个行的条件,而 HAVING 子句评估组的聚合结果。
- 结果影响:WHERE 子句影响哪些行被包括在结果中,而 HAVING 子句影响哪些组被包括在结果中。