Home >> FAQs/Tutorials >> SQL Server FAQ

SQL Server FAQ - HAVING - Apply Filtering Criteria at Group Level

By: FYIcenter.com

(Continued from previous topic...)

How To Apply Filtering Criteria at Group Level with The HAVING Clause?

Let's say you have divided the query output into multiple groups with the GROUP BY clause. Now you are only interested in some of the groups, not all the groups. If you want to filter out some groups from the query, you can apply filtering criteria at the group level by using the HAVING clause inside the GROUP BY clause with this syntax:

SELECT group_level_fields FROM source_tables
   WHERE search_condition
   GROUP BY group_by_expression
      HAVING group_filtering_condition

Since group_filtering_condition applies to groups, only group level expressions can be used in group_filtering_condition. The following tutorial exercise gives you some good examples of HAVING clause:

SELECT tag, COUNT(*), MIN(created), AVG(counts) 
   FROM fyi_links 
   GROUP BY tag HAVING AVG(counts) > 300
GO
tag     COUNT(*) MIN(created)   AVG(counts)
DBA     3        2005-01-01     774
SQA     2        2003-01-01     778

SELECT tag, COUNT(*), MIN(created), AVG(counts) 
   FROM fyi_links 
   GROUP BY tag 
      HAVING AVG(counts) > 300 AND tag = 'DBA'
GO
tag     COUNT(*) MIN(created)   AVG(counts)
DBA     3        2005-01-01     774

Note that the more criteria you have in the HAVING clause, the less groups you will get.

(Continued on next topic...)

  1. What Is a SELECT Query Statement?
  2. How To Create a Testing Table with Test Data?
  3. How To Select All Columns of All Rows from a Table with a SELECT statement?
  4. How To Select Some Specific Columns from a Table in a Query?
  5. How To Select Some Specific Rows from a Table?
  6. How To Add More Data to the Testing Table?
  7. How To Sort the Query Output with ORDER BY Clauses?
  8. Can the Query Output Be Sorted by Multiple Columns?
  9. How To Sort Query Output in Descending Order?
  10. How To Count Rows with the COUNT(*) Function?
  11. Can SELECT Statements Be Used on Views?
  12. How To Filter Out Duplications in the Returning Rows?
  13. What Are Group Functions in Query Statements?
  14. How To Use Group Functions in the SELECT Clause?
  15. Can Group Functions Be Mixed with Non-group Selection Fields?
  16. How To Divide Query Output into Multiple Groups with the GROUP BY Clause?
  17. How To Apply Filtering Criteria at Group Level with The HAVING Clause?
  18. How To Count Duplicated Values in a Column?
  19. Can Multiple Columns Be Used in GROUP BY?
  20. Can Group Functions Be Used in the ORDER BY Clause?

Related Articles:

More...


Other Tutorials/FAQs:

More...


Related Resources:

More...


Selected Jobs:

More...