Video:
When to Use HAVING Instead of WHERE - Aggregates, GROUP BY, and the HAVING Clause
Skill
level:
300 (Intermediate)
Run Time:
11:12
Instructor:
Scott Whigham
Description:
The traditional areas of difficulty for SQL developers are aggregates, JOINs, and subqueries. Most people have no trouble understanding when to use COUNT instead of SUM but they get "stuck" when it comes to determining how to filter the data. Suppose you are asked to find all orders in 2006 in which customers ordered more than 5 items - how would you solve this query? Obviously you need two filters: for the date (2006) and for orders with more than 5 items. People have difficulty with this type of query however; most people would approach this query along these lines: "SELECT ... FROM Orders JOIN OrderDetails ... WHERE Year(DateOrdered)=2006 AND COUNT(*) > 5". Focus on the WHERE clause for a moment: is that right? If you aren't sure or if you think it is right, then you need to watch this video to understanding why this query must use the HAVING clause.
Download
and watch this video
NOTE: You will need the TSCC codec
installed to view video
Scott Whigham
Scott Whigham is the founder of LearnItFirst.com, one of the web's most extensive
video training libraries focusing on technical training. Scott is also an experienced
consultant, trainer, and author with more than a decade of hands-on experience working
with SQL Server databases, writing and debugging applications using Visual Studio,
and performance tuning. Scott designed the architecture (websites, class libraries,
and database) for the LearnItFirst.com websites and, most
re...
(Scott's full bio can be found here)
NOTE: This video is part of our
SQL Server Programming (SQL Server 2005/2000): Transact SQL course.
This video is from Chapter
5:
Aggregating Data Using DISTINCT, GROUP BY, HAVING, and more