What is the difference between WHERE and HAVING?
The difference between WHERE
and HAVING
lies in when and where they are applied within a query, especially in relation to grouping.
1. WHERE Clause
- Purpose: Filters rows before any grouping or aggregation is applied.
- Use case: Used to filter individual rows based on a condition.
- Applies to: Columns in the table (before aggregation).
- Cannot be used with aggregate functions (like
COUNT
,SUM
,AVG
, etc.) unless those functions are part of aHAVING
clause.
Example:
SELECT name, age
FROM employees
WHERE age > 30;
Result: Filters employees with
age > 30
before any grouping happens.
2. HAVING Clause
- Purpose: Filters rows after aggregation or grouping has been applied.
- Use case: Used to filter groups based on a condition, often involving aggregate functions like
COUNT()
,SUM()
,AVG()
, etc. - Applies to: Groups created by
GROUP BY
(or aggregates). - Can be used with aggregate functions.
Example:
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
Result: Filters departments with more than 5 employees after the grouping.
🧠 Key Differences:
Aspect | WHERE | HAVING |
---|---|---|
When applied | Before grouping or aggregation | After grouping or aggregation |
Where it’s used | Filters rows in the table | Filters groups or aggregates |
Can use aggregate functions? | ❌ No, only on columns of the table | ✅ Yes, can be used with aggregate functions |
Common use case | Filtering individual rows before aggregation | Filtering results of aggregation/grouping |
🧩 Example for Clarity:
Using WHERE
:
SELECT name, age
FROM employees
WHERE age > 30; -- Filters rows where age > 30 before aggregation
Using HAVING
:
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000; -- Filters groups where the average salary is greater than 50,000
Let me know if you’d like more detailed examples or clarification!
At Online Learner, we're on a mission to ignite a passion for learning and empower individuals to reach their full potential. Founded by a team of dedicated educators and industry experts, our platform is designed to provide accessible and engaging educational resources for learners of all ages and backgrounds.
Terms Disclaimer About Us Contact Us
Copyright 2023-2025 © All rights reserved.