Understanding HAVING vs WHERE in SQL: Filter Grouped Data
Skills:
SQL Analytics90%
Key Takeaways
The video explores the HAVING clause in SQL, its role in filtering grouped data, and its difference from the WHERE clause, with a focus on working with SQL aggregate functions and the SQL order of execution.
Full Transcript
that was excellent work we've combined sorting and grouping next we will combine filtering with grouping in SQL we can't filter aggregate functions with wear Clauses for example this query attempting to filter the title count is invalid that means that if we want to filter based on the result of an aggregate function we need another way groups have their own special filtering word having for example this query shows only those years in which more than 10 films were released the reason why groups have their own keyword for filtering comes down to the order of execution we've written a query using many of the key words we have covered here this is their written order starting with select from films where the certification is G PG or PG13 Group by certification having the title count be greater than 500 order by title count and limit to three in contrast the order of execution is from where Group by having select order by and limit by reviewing this order we can see where is executed before Group by and before any aggregation occurs this order is also why we cannot use the Alias with having but we can with orderby where filters individual records while having filters grouped records we'll walk through two business questions here to show how to translate them into the correct filter the first question is what films were released in the year 2000 this question does not indicate any sort of grouping it asks to see only the titles from a specific year and can therefore be written as Select Title from films where release year equals 2000 the second question is in what years was the average film duration over 2 hours straight away we can see this question has a few more layers let's break down the question and query into smaller easier to understand steps this question requires us to return information about years so we select the release year from the film's table next it asks for the average film duration which tells us we need to place average duration somewhere since we do not need to provide any additional information around the duration on its own it is unlikely we need to perform the aggregation within the select Clause so we'll try the having Clause instead the last part of the question indicates we need to filter on the duration since we can't filter Aggregates with wear this supports our theory about using having finally we need to add a group by into our query since we have selected a column that has not been aggregated recall the aggregate function will convert the duration values into one average value going back to the start of our question we're interested in knowing the average duration per year so we group it by release year and there we have it [Music]
Original Description
In this video, we explore the HAVING clause in SQL and its role in filtering grouped data, a key concept for intermediate SQL learners. Discover why HAVING is crucial for working with SQL aggregate functions and how it differs from the WHERE clause. We'll guide you through examples illustrating the SQL order of execution and demonstrate practical use cases.
- Learn to filter aggregated results using HAVING
- Understand the difference between HAVING and WHERE
- Explore SQL's order of execution
- Practice SQL queries with aggregate functions and GROUP BY
#sql #datascience #dataengineering #databases #postgresql
00:00 Intro
00:09 Understanding HAVING in SQL
00:44 Order of SQL Execution
01:53 HAVING vs WHERE: Business Questions
02:52 Breaking Down HAVING vs WHERE
04:05 Let's Practice!
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from DataCamp · DataCamp · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
SQL Server Tutorial: Date manipulation
DataCamp
R Tutorial: Intermediate Interactive Data Visualization with plotly in R
DataCamp
R Tutorial: Adding aesthetics to represent a variable
DataCamp
R Tutorial: Moving Beyond Simple Interactivity
DataCamp
Python Tutorial: Why use ML for marketing? Strategies and use cases
DataCamp
Python Tutorial: Preparation for modeling
DataCamp
Python Tutorial: Machine Learning modeling steps
DataCamp
R Tutorial: The prior model
DataCamp
R Tutorial: Data & the likelihood
DataCamp
R Tutorial: The posterior model
DataCamp
R Tutorial: An Introduction to plotly
DataCamp
R Tutorial: Plotting a single variable
DataCamp
R Tutorial: Bivariate graphics
DataCamp
Python Tutorial: Customer Segmentation in Python
DataCamp
Python Tutorial: Time cohorts
DataCamp
Python Tutorial: Calculate cohort metrics
DataCamp
Python Tutorial: Cohort analysis visualization
DataCamp
R Tutorial: Building Dashboards with flexdashboard
DataCamp
R Tutorial: Anatomy of a flexdashboard
DataCamp
R Tutorial: Layout basics
DataCamp
R Tutorial: Advanced layouts
DataCamp
Python Tutorial: Time Series Analysis in Python
DataCamp
Python Tutorial: Correlation of Two Time Series
DataCamp
Python Tutorial: Simple Linear Regressions
DataCamp
Python Tutorial: Autocorrelation
DataCamp
R Tutorial: The gapminder dataset
DataCamp
R Tutorial: The filter verb
DataCamp
R Tutorial: The arrange verb
DataCamp
R Tutorial: The mutate verb
DataCamp
R Tutorial: What is cluster analysis?
DataCamp
R Tutorial: Distance between two observations
DataCamp
R Tutorial: The importance of scale
DataCamp
R Tutorial: Measuring distance for categorical data
DataCamp
Python Tutorial: Plotting multiple graphs
DataCamp
Python Tutorial: Customizing axes
DataCamp
Python Tutorial: Legends, annotations, & styles
DataCamp
Python Tutorial: Introduction to iterators
DataCamp
Python Tutorial: Playing with iterators
DataCamp
Python Tutorial: Using iterators to load large files into memory
DataCamp
SQL Tutorial: Introduction to Relational Databases in SQL
DataCamp
SQL Tutorial: Tables: At the core of every database
DataCamp
SQL Tutorial: Update your database as the structure changes
DataCamp
Python Tutorial: Classification-Tree Learning
DataCamp
Python Tutorial: Decision-Tree for Classification
DataCamp
Python Tutorial: Decision-Tree for Regression
DataCamp
Python Tutorial: Census Subject Tables
DataCamp
Python Tutorial: Census Geography
DataCamp
Python Tutorial: Using the Census API
DataCamp
R Tutorial: A/B Testing in R
DataCamp
R Tutorial: Baseline Conversion Rates
DataCamp
R Tutorial: Designing an Experiment - Power Analysis
DataCamp
R Tutorial: Introduction to qualitative data
DataCamp
R Tutorial: Understanding your qualitative variables
DataCamp
R Tutorial: Making Better Plots
DataCamp
SQL Tutorial: OLTP and OLAP
DataCamp
SQL Tutorial: Storing data
DataCamp
SQL Tutorial: Database design
DataCamp
Python Tutorial: Introduction to spaCy
DataCamp
Python Tutorial: Statistical Models
DataCamp
Python Tutorial: Rule-based Matching
DataCamp
More on: SQL Analytics
View skill →Related Reads
📰
📰
📰
📰
Tracking Macroeconomic Indicators with the Finance Toolkit
Dev.to · Jeroen Bouma
Pydantic for Data Engineering: Schema Validation in ETL & Pipeline Contracts
Dev.to · Gowtham Potureddi
Half of Data Engineering Jobs on LinkedIn Aren't Real
Dev.to · DataDriven
Evolutionary Data Through Schemaboi: Achieving Forward, Backwards, and Sideways Compatibility
InfoQ AI/ML
Chapters (6)
Intro
0:09
Understanding HAVING in SQL
0:44
Order of SQL Execution
1:53
HAVING vs WHERE: Business Questions
2:52
Breaking Down HAVING vs WHERE
4:05
Let's Practice!
🎓
Tutor Explanation
DeepCamp AI