摘要:在本教程中,您将学习如何使用 MySQL MIN()
函数查找一组值中的最小值。
MySQL MIN()
函数简介
MIN()
函数返回一组值中的最小值。 MIN()
函数在某些场景中非常有用,例如查找最小的数字、选择最便宜的产品或获得最低的信用额度。
以下是MIN
函数的基本语法:
MIN(DISTINCT expression);
Code language: SQL (Structured Query Language) (sql)
在此语法中, MIN()
函数接受一个表达式,该表达式可以是列或涉及列的有效表达式。
与其他聚合函数(例如SUM()
、 AVG()
和COUNT()
一样, DISTINCT
对MIN()
函数没有影响。
MySQL MIN 函数示例
我们将使用示例数据库中的products
表进行演示。
A) 使用 MySQL MIN()
函数查找所有行中的最小值
此查询使用MIN()
函数从products
表中获取所有产品的最低价格:
SELECT
MIN(buyPrice)
FROM
products;
Code language: SQL (Structured Query Language) (sql)
在此示例中,查询检查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()
函数获取所有摩托车购买价格的最低值。
这是输出:
C) 使用 MySQL MIN()
和子查询示例
要不仅查找价格,还要查找其他产品信息(例如产品代码和产品名称),可以在子查询中使用MIN()
函数,如以下查询所示:
SELECT
productCode,
productName,
buyPrice
FROM
products
WHERE
buyPrice = (
SELECT
MIN(buyPrice)
FROM
products);
Code language: SQL (Structured Query Language) (sql)
怎么运行的。
- 子查询返回
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)
在这个例子中:
- 首先,
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)
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)
在此示例中,对于外部查询中的每个产品系列,相关子查询选择该产品系列中价格最低的产品并返回最低价格。
然后将返回的最低价格用作外部查询的输入,以查找相关的产品数据,包括产品系列、产品代码、产品名称和购买价格。
如果您想在不使用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()
函数查找一组值中的最小值。