SQL Aggregate Functions: Min, Max, Avg and Sum
Welcome back, SQL nerds! We’re back in action on the journey of learning SQL, after a beginner PostgreSQL skills challenge. We’re reaching the end of basic functions and queries with this article. Based on what we’ve learned so far, we can do basic counting, filtering, sorting and pattern matching against PostgreSQL databases. If you’re just […]
Welcome back, SQL nerds! We’re back in action on the journey of learning SQL, after a beginner PostgreSQL skills challenge.
We’re reaching the end of basic functions and queries with this article. Based on what we’ve learned so far, we can do basic counting, filtering, sorting and pattern matching against PostgreSQL databases.
If you’re just tuning in, here’s the page on how to learn SQL, and the previous SQL article on the LIKE Statement.
Okay, enough jabber. Let’s jump in. The aggregate functions of MIN, MAX, AVG and SUM are our turning point into more complex SQL queries that involve concepts such as GROUP BY, among others.
At the same time, the functions on their own aren’t super complicated. Because we’re ass-u-ming you’re familiar with the general concepts of minimum, maximum, etc., we’re going to forgo conceptual and syntax explanations for demos.
AVG Aggregate Function
As we level up in SQL, we’re going to do less and less explaining / handholding / screenshots. That said, we’re going to explore our DVD rental data set for a table with a nice numerical component that would make good use of the functions.
We did a SELECT * FROM film LIMIT 15; to get a peek at the columns. For the purposes of this exercise, the replacement_cost column will do nicely.
To get the AVG:
SELECT AVG(replacement_cost) FROM film;
Using ROUND for Decimal Place Control
You’ll notice in the example above that we got 3 decimal places on what’s supposed to be a dollar amount. How do we fix that? Glad you asked. Meet the ROUND function.
We pass in the target value (average of replacement_cost) and mandate the number of decimal places we’d like returned. Below:
SELECT ROUND( AVG(replacement_cost), 2) FROM film;
MIN Aggregate Function
To find the minimum value in a given column:
SELECT MIN(replacement_cost) FROM film;
MAX Aggregate Function
To find the maximum value in a given column:
SELECT MAX(replacement_cost) FROM film;
SUM Aggregate Function
To find the maximum value in a given column:
SELECT SUM(replacement_cost) FROM film;
Wrap-Up
Alright, that was a relatively quick article! Hopefully this was a reprieve from more involved sections in the past. We should find that as we continue to strengthen our core PostgreSQL capabilities, these articles and our SQL queries should be easier and easier. If you found this article interesting, you might enjoy a new section on how to get started in machine learning. Cheers.