Aggregate a column data

How to get statistical data from a column in standard SQL. In particular it shows how to get the minimum, maximum, average values, and the standard deviation.

Counting values

There are several ways of counting values, so this topic has a dedicated article: Count a table rows.

Finding the minimum value

Example: Get the minimum salary in the company.

SELECT min(salary) FROM employees;

Finding the maximum value

Example: Get the maximum salary in the company.

SELECT max(salary) FROM employees;

Obtaining the average and the standard deviation

Example: Get the average salary in the company.

SELECT avg(salary), stddev(salary) FROM employees;

Obtaining the sum of a column

NOTE: This only works with numeric columns.

Example: Get the sum of the salaries of all the company’s employees.

SELECT sum(salary) FROM employees;

Aggregating unique values

Some of these functions can aggregate unique values, meaning that identical values will be counted once.

For example, if we use AVG(DISTINCT n), we will get the same result for these series of values:

  • 1, 2, 3
  • 1, 2, 3, 3, 3

SQLite

SQLite supports sum(), as shown above, but it always returns an integer number – even when summing float numbers.

It also supports a total() function, which always returns a float, so it is meant to sum float numbers.

Reference

Related articles:

SQLite documentation: