MySQL MIN()函数

时间:2019-11-20 08:52:16  来源:igfitidea点击:

简介:在本教程中,您将学习如何使用MySQL MIN()函数在一组值中找到最小值。

MySQL MIN()函数简介

MIN()函数返回一组值中的最小值。
MIN()函数在某些情况下非常有用,例如找到最小的数量,选择最便宜的产品或获得最低的信用额度。

这是MIN函数的基本语法:

MIN(DISTINCT expression);

用这种语法,MIN()函数接受一个表达式,该表达式可以是列,也可以是包含列的有效表达式。

与其他聚合函数(例如SUM(),AVG()和COUNT())一样,DISTINCT对MIN()函数没有影响。

MySQL MIN函数示例

我们将使用示例数据库中的产品表进行演示。

A)使用MySQL MIN()函数在所有行中查找最小值

此查询使用MIN()函数从products表中获取所有产品的最低价格:

SELECT 
    MIN(buyPrice)
FROM
    products;

在此示例中,查询检查产品表的buyPrice列中的所有值,并返回最小值。

B)通过WHERE子句示例使用MySQL MIN()

本示例使用MIN()函数查找所有摩托车的最低购买价:

SELECT 
    MIN(buyPrice)
FROM
    products
WHERE
    productline = 'Motorcycles';

在此示例中:

  • 首先,在WHERE子句中指定一个条件,该条件仅获取产品线为Motorcycles的产品。

  • 其次,使用MIN()函数获得所有摩托车的最低购买价。

这是输出:

C)使用MySQL MIN()和子查询示例

要查找价格,还要查找其他产品信息(例如产品代码和产品名称),请在子查询中使用MIN()函数,如以下查询所示:

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice = (
        SELECT 
            MIN(buyPrice)
        FROM
            products);

这个怎么运作。

  • 子查询返回产品表中最低购买价格的产品。

  • 外部查询选择购买价格等于子查询返回的最低价格的产品。

D)使用MySQL MIN()函数和GROUP BY示例

像其他聚合函数一样,MIN()函数通常与GROUP BY子句一起使用,以查找每个组的最小值。

本示例将MIN()函数与GROUP BY子句一起使用,以获取每个产品系列的最低购买价产品:

SELECT 
    productline, 
    MIN(buyprice)
FROM
    products
GROUP BY productline;

在此示例中:

  • 首先,GROUP BY子句按产品线对产品进行分组。

  • 其次,MIN()函数返回每个产品系列中最低购买价格的产品。

E)将MySQL MIN()函数与HAVING子句示例一起使用

该查询查找最低购买价格低于21的产品线:

SELECT 
    productLine, 
    MIN(buyPrice)
FROM
    products
GROUP BY 
    productline
HAVING 
    MIN(buyPrice) < 25
ORDER BY 
    MIN(buyPrice);

F)将MySQL MIN()与相关子查询一起使用

以下查询通过结合MIN函数和相关子查询来选择每个产品系列中价格最低的产品:

SELECT 
    productline, 
    productCode, 
    productName, 
    buyprice
FROM
    products a
WHERE
    buyprice = (
        SELECT 
            MIN(buyprice)
        FROM
            products b
        WHERE
            b.productline = a.productline);

在此示例中,对于来自外部查询的每个产品线,相关子查询选择产品线中价格最低的产品并返回最低价格。

然后,将返回的最低价格用作外部查询的输入,以查找相关的产品数据,包括产品线,产品代码,产品名称和购买价格。

如果要在不使用MIN()函数和子查询的情况下获得相同的结果,则可以如下使用自连接:

SELECT 
    a.productline, 
    a.productCode, 
    a.productName, 
    a.buyprice
FROM
    products a
LEFT JOIN products b 
    ON a.productline = b.productline
        AND b.buyprice < a.buyprice
WHERE
    b.productcode IS NULL;

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