MySQL min()函数

MySQL 中的 MIN() 函数用于从表中返回一组值中的最小值。它是一个聚合函数,当我们需要找到最小的数字、选择最便宜的产品等时很有用。

一、MySQL min()函数 语法

以下是MySQL 中 MIN() 函数的基本语法:

SELECT MIN ( DISTINCT aggregate_expression)  
FROM table_name(s)  
[WHERE conditions];  

参数说明

aggregate_expression:它是必需的表达式。它指定将返回最小值的列或表达式名称。

Table_name(s):它指定我们要从中检索记录的表。FROM 子句中必须至少列出一个表。

WHERE conditions:可选。它指定要选择的记录必须满足的条件。

DISTINCT:它允许我们返回表达式中不同值的最小值。但是,它不会影响 MIN() 函数,并且在不使用 this 关键字的情况下会产生相同的结果。

二、MySQL min()函数 示例

让我们借助各种示例了解 MIN 函数在MySQL中的工作原理。考虑我们的数据库有一个名为“ employees ”的表,其中包含以下数据。

1. 基本示例

执行以下查询,该查询使用 MIN 函数查找表中可用员工的最低收入:

mysql> SELECT MIN(income) AS Minimum_Income FROM employees; 

上面的查询产生所有行中最小值的结果。执行后,我们会得到如下输出:

2. 带有 WHERE 子句的 MySQL MIN() 函数

WHERE 子句允许我们从选定的记录中过滤结果。以下语句从employee表中查找所有行中的最低收入,WHERE子句指定emp_age列大于或等于32且小于或等于40的所有行。

mysql> SELECT MIN(income) AS Minimum_Income   
FROM employees   
WHERE emp_age >= 32 AND emp_age <= 40;  

上面的语句将得到如下输出:

3. 带有 GROUP BY 子句的 MySQL MIN() 函数

GROUP BY 子句允许我们从多行收集数据并根据一列或多列对其进行分组。例如,以下语句使用带有 GROUP BY 子句的 MIN() 函数从雇员表的所有行中为每个 emp_age 组查找最低收入。

mysql> SELECT emp_age, MIN(income) AS Minimum_Income   
FROM employees   
GROUP BY emp_age;  

执行成功后,我们可以看到每个员工的收入按年龄分组返回:

4. 带有 HAVING 子句的 MySQL MIN() 函数

HAVING 子句总是与 GROUP BY 子句一起使用来过滤表中的记录。例如,下面的语句返回所有员工的最低收入,根据他们所在的城市对他们进行分组,并返回 MIN(income)>150000 的结果。

mysql> SELECT city, MIN(income) AS Minimum_Income   
FROM employees   
GROUP BY city  
HAVING MIN(income) > 150000;  

该语句将返回如下输出:

5. 带有 DISTINCT 子句的 MySQL MIN() 函数

MySQL 使用DISTINCT关键字从列名中删除重复的行。我们还可以将此子句与 MIN() 函数一起使用,以返回表中存在的唯一记录数的最小收入值。

执行以下查询,按城市分组,删除employee表的income列中的重复记录,然后返回最小值:

mysql> SELECT emp_name, city, MIN(DISTINCT income) AS Minimum_Income   
FROM employees   
GROUP BY city; 

该语句将给出如下输出:

热门文章

优秀文章