Skip to main content

SQLite MIN函数:在集合中查找最小值

SQLite-MIN函数简介

下面说明了SQLite MIN函数的语法:

MIN([ALL|DISTINCT] expression);

MIN函数默认使用ALL。与MAX函数类似,MIN函数忽略空值。因此,它返回一组值中的非空最小值。

表达式可以是列,也可以是由列和运算符组成的表达式。

请注意,DISTINCT与MIN函数无关。

如果将SELECT语句与ORDER BY和WHERE子句一起使用,则第一个最小非空值将出现在结果集的第一行。

SELECT
column
FROM
table
WHERE
column IS NOT NULL
ORDER BY
column DESC;

试试看

MIN函数何时返回空值?我们很高兴你这么问。

当且仅当集合中只有空值时,MIN函数返回空值。

SQLite MIN函数示例

我们将使用示例数据库中的tracks表来演示MIN函数。

tracks table

要获得最短轨迹,请按如下方式使用MIN函数:

SELECT
min(Milliseconds)
FROM
tracks;

试试看

SQLite MIN function example

子查询中的SQLite MIN函数

要获得完整的最短轨迹信息,需要使用子查询。

外部查询根据使用MIN函数的子查询返回的毫秒数从tracks表获取完整信息。

请参见以下查询。

SELECT
trackid,
name,
milliseconds
FROM
tracks
WHERE
milliseconds = (
SELECT
min(Milliseconds)
FROM
tracks
);

试试看

带有GROUP BY子句示例的SQLite MIN函数

使用GROUP BY子句的MIN函数可以找到每个相册的最短曲目。GROUP BY子句将一组行分组。MIN函数查找每个组的最小值。

以下陈述说明了这一想法:

SELECT
albumid,
min(milliseconds)
FROM
tracks
GROUP BY
albumid;

试试看

带有HAVING子句示例的SQLite MIN函数

可以使用HAVING子句筛选组。例如,当与MIN功能结合使用时,您可以找到相册及其最短曲目,其中每个最短曲目的长度小于10秒。

SELECT
albumid,
min(milliseconds)
FROM
tracks
GROUP BY
albumid
HAVING
MIN(milliseconds) < 10000;

试试看

SQLite MIN Function with HAVING clause

在本教程中,您学习了如何使用SQLite MIN函数在一组值中查找最小值。