Module lessons (4/4)
Counting and summarizing: COUNT, AVG, MAX
So far every SELECT returned one row for each row of the table.
Aggregate functions do the opposite: they read many rows and return
a single value that summarises them.
The most common ones are:
COUNT(*)— how many rows there are.AVG(column)— the average of numeric values (ignoresNULL).MAX(column)/MIN(column)— the maximum / minimum value.SUM(column)— the sum of numeric values.
SELECT COUNT(*),
AVG(salary),
MAX(salary)
FROM employees;When the aggregate is applied to the whole table (without GROUP BY, which
you will see in the next module) the result is a single row, regardless
of how many rows the source table has.
Combining with WHERE
WHERE filters before aggregation: the aggregate only works on the rows
that passed the filter.
-- Stipendio medio dei soli dipendenti del Marketing (department_id = 3):
SELECT AVG(salary)
FROM employees
WHERE department_id = 3;Try it
How many employees have been hired since January 1, 2020? Return a single number (one row, one column).
Show hint
The function that counts rows is COUNT(*).
Solution available after 3 attempts
Review exercise
In a single query, compute the average (AVG) and maximum (MAX) salary of employees in Marketing (department_id = 3). One row, two columns.
Show hint
You can put several aggregate functions in the same SELECT, separated by commas.
Solution available after 3 attempts