when we are using group by clause to apply condition on group of rows Having clause will be used.having clause follows Group by clause.
where clause will be used for condition on single row.
where clause comes before group by clause
select empname,salary from employee where empname like '%raj%' group by salary having salary>30000
I don't believe there is any difference except that having clause is used if group by clause is used in the query. Otherwise I think you can use a where clause instead.