SQL MIN 函数

时间:2018-11-15 17:51:14  来源:igfitidea点击:

在本教程中,我们将学习如何使用SQL MIN函数获取结果集中的最小值。

SQL MIN函数介绍

MIN函数将返回一组值中的最小值。MIN函数忽略空值NULL。

以下是MIN函数的语法:

MIN(DISTINCT or ALL 表达式)

ALL修饰符指示MIN函数在所有值(包括重复值)中查找最小值。默认情况下,MIN()函数使用ALL修饰符,因此不必显式指定它。

与其他聚合函数(如SUM、COUNT和AVG)不同,DISTINCT修饰符不适用于MIN()函数。DISTINCT修饰符仅用于兼容ISO。

SQL MIN 函数示例

要在products表中查找产品的最低单价,可以使用MIN()函数,如下所示:

SELECT 
    MIN(unitprice)
FROM
    products;

要获得最便宜的产品,必须使用一个子查询,该子查询将使用到MIN()函数:

SELECT 
    productid, productname, unitprice
FROM
    products
WHERE
    unitprice = (
        SELECT 
            MIN(unitprice)
        FROM
            products);

外部的查询语句获取单价与子查询返回的最低价格匹配的最便宜产品。
如果多个产品的单价与最低价格相同,则查询将返回多行。

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

要查找每个类别中产品的最低单价,可以使用带有GROUP BY子句的MIN()函数:
GROUP BY子句按类别将产品分为多个组。对于每个组,MIN()函数将返回最低单价。

SELECT 
    categoryid, MIN(unitprice)
FROM
    products
GROUP BY categoryid;

带HAVING子句的SQL MIN函数示例

要获得最低单价低于7美元的类别,可以对GROUP BY和HAVING子句使用MIN()函数,如下所示:

SELECT 
    categoryid, MIN(unitprice)
FROM
    products
GROUP BY categoryid
HAVING MIN(unitprice) < 7;

带相关子查询的SQL MIN函数示例

要获得每个类别中最便宜的产品,可以在相关子查询中使用MIN函数,如下所示:

SELECT categoryid,
       productid,
       productName,
       unitprice
FROM products a
WHERE unitprice = (
                SELECT MIN(unitprice)
                FROM products b
                WHERE b.categoryid = a.categoryid)

外部的查询将扫描products表中的所有行,并返回那些单价与相关子查询返回的每个类别中的最低价格相匹配的产品。