MySQL MIN

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

MySQL MIN()函数简介

MIN()函数返回一组值中的最小值。 MIN()函数在某些场景中非常有用,例如查找最小的数字、选择最便宜的产品或获得最低的信用额度。

以下是MIN函数的基本语法:

MIN(DISTINCT expression);Code language: SQL (Structured Query Language) (sql)

在此语法中, MIN()函数接受一个表达式,该表达式可以是列或涉及列的有效表达式。

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

MySQL MIN 函数示例

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

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

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

SELECT 
    MIN(buyPrice)
FROM
    products;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL MIN 函数示例

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

B) 将 MySQL MIN()WHERE子句一起使用的示例

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

SELECT 
    MIN(buyPrice)
FROM
    products
WHERE
    productline = 'Motorcycles';Code language: SQL (Structured Query Language) (sql)

在这个例子中:

  • 首先,在WHERE子句中指定一个条件,该条件仅获取产品线为Motorcycles产品。
  • 其次,使用MIN()函数获取所有摩托车购买价格的最低值。

这是输出:

MySQL MIN 与 WHERE 子句

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

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

SELECT 
    productCode, 
    productName, 
    buyPrice
FROM
    products
WHERE
    buyPrice = (
        SELECT 
            MIN(buyPrice)
        FROM
            products);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL MIN with Subquery

怎么运行的。

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

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

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

此示例使用带有GROUP BY子句的MIN()函数来获取每个产品系列的最低购买价格产品:

SELECT 
    productline, 
    MIN(buyprice)
FROM
    products
GROUP BY productline;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL MIN with GROUP BY clause

在这个例子中:

  • 首先, 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);Code language: SQL (Structured Query Language) (sql)
带有 HAVING 子句的 MySQL MIN 示例

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);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL MIN 与相关子查询

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

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

如果您想在不使用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;Code language: SQL (Structured Query Language) (sql)

试试看

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

本教程有帮助吗?