Overview
: 
Having clause in SQL is used to place
aggregate functions  to filter data
because where condition does not allow the use of aggregate function.
Syntax
: 
SELECT
column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
Demo : 
Suppose we have
a database of items as shown below.  
 
 
  
  
  
  
  
  
  
  
  
  
  
  
              
 
 
    
 
  
Now
if we need to find out if there is any duplicate bar-code in these items then we
can use having clause.
Query :
select count(item_code),
item_name, item_purchase_rate, item_sale_rate from
item group by
item_code, item_name,
item_purchase_rate, item_sale_rate having count(item_code)  > 0

