Summary: in this tutorial, you will learn how to use SQLite MIN
function to get the minimum value in a set of values.
Introduction to SQLite MIN function
The following illustrates the syntax of the SQLite MIN
function:
MIN([ALL|DISTINCT] expression);
Code language: SQL (Structured Query Language) (sql)
The MIN
function uses ALL
by default. Similar to the MAX function, the MIN
function ignores NULL values. Therefore, it returns the non-NULL minimum value in a set of values.
The expression
can be a column or an expression that consists of columns and operators.
Note that the DISTINCT is not relevant to the MIN
function.
If you use the SELECT statement with ORDER BY and WHERE clauses, the first minimum non-null value appears at the first row of the result set.
SELECT
column
FROM
table
WHERE
column IS NOT NULL
ORDER BY
column DESC;
Code language: SQL (Structured Query Language) (sql)
When does the MIN
function return a NULL
value? We’re glad that you asked.
The MIN
function returns a NULL
value if and only if there are only NULL values in the set.
SQLite MIN function examples
We will use the tracks
table in the sample database for demonstrating the MIN
function.
To get the shortest track, you use the MIN
function as follows:
SELECT
min(Milliseconds)
FROM
tracks;
Code language: SQL (Structured Query Language) (sql)
SQLite MIN function in a subquery
To get the complete shortest track information, you need to use a subquery.
The outer query gets the complete information from the tracks
table based on the milliseconds returned by the subquery that uses the MIN
function.
See the following query.
SELECT
trackid,
name,
milliseconds
FROM
tracks
WHERE
milliseconds = (
SELECT
min(Milliseconds)
FROM
tracks
);
Code language: SQL (Structured Query Language) (sql)
SQLite MIN function with the GROUP BY clause example
You can find the shortest track per album using the MIN
function with GROUP BY clause. The GROUP BY
clause groups a set of rows into groups. The MIN
function finds the minimum value for each group.
The following statement illustrates the idea:
SELECT
albumid,
min(milliseconds)
FROM
tracks
GROUP BY
albumid;
Code language: SQL (Structured Query Language) (sql)
SQLite MIN function with the HAVING clause example
You can use the HAVING
clause to filter groups. For example, when combining with the MIN
function, you can find the albums and their shortest tracks where the length of each shortest track is less than 10 seconds.
SELECT
albumid,
min(milliseconds)
FROM
tracks
GROUP BY
albumid
HAVING
MIN(milliseconds) < 10000;
Code language: SQL (Structured Query Language) (sql)
In this tutorial, you have learned how to use the SQLite MIN
function to find the minimum value in a set of values.