Kiến thức

# Difference between Where and Having Clause in SQL-GeeksforGeeks

Difference between Where and Having Clause in SQL
• Difficulty Level :

Easy

• Last Updated : 16 Apr, 2020

1. WHERE Clause:
WHERE Clause is used to filter the records from the table or used while joining more than one table.Only those records will be extracted who are satisfying the specified condition in WHERE clause. It can be used with SELECT, UPDATE, DELETE statements.

Let us consider below table “Student”

`Roll_no       S_Name      Age 1                a             17 2                b             20 3                c             21 4                d             18 5                e             20 6                f             17 7                g            21 8                h             17 `

Consider the Query:

`SELECT S_Name, Age FROM Student WHERE Age >=18`

OUTPUT of above query is :

` S_Name      Age b             20             c             21             d             18             e             20             g             21             `

2. HAVING Clause:
HAVING Clause is used to filter the records from the groups based on the given condition in the HAVING Clause. Those groups who will satisfy the given condition will appear in the final result. HAVING Clause can only be used
with SELECT statement.

Let us consider Student table mentioned above and apply having clause on it:

`SELECT Age, COUNT(Roll_No) AS No_of_Students FROM Student GROUP BY Age HAVING COUNT(Roll_No) > 1 `

OUTPUT of the baove query is :

`Age     No_of_Students 17              3 20              2 21              1 `

Difference between Where and Having Clause in SQL :

SR.NO. WHERE Clause HAVING Clause
1. WHERE Clause is used to filter the records from the table based on the specified condition. HAVING Clause is used to filter record from the groups based on the specified condition.
2. WHERE Clause can be used without GROUP BY Clause HAVING Clause cannot be used without GROUP BY Clause
3. WHERE Clause implements in row operations HAVING Clause implements in column operation
4. WHERE Clause cannot contain aggregate function HAVING Clause can contain aggregate function
5. WHERE Clause can be used with SELECT, UPDATE, DELETE statement. HAVING Clause can only be used with SELECT statement.
6. WHERE Clause is used before GROUP BY Clause HAVING Clause is used after GROUP BY Clause
7. WHERE Clause is used with single row function like UPPER, LOWER etc. HAVING Clause is used with multiple row function like SUM, COUNT etc.

Attention reader! Don’t stop learning now. Learn all

GATE CS concepts with Free Live Classes