SQL MIN

摘要:本教程帮助你通过实际示例掌握 SQL MIN 函数。完成本教程之后,你将知道如何有效地应用 MIN 函数来查找一组值中的最小值。

SQL MIN 函数简介

SQL MIN 函数在值集中返回最小值。以下是 MIN 函数的语法。

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

MAX 函数 一样,MIN 函数也忽略 NULL 值,DISTINCT 选项不适用于 MIN 函数。

SQL MIN 函数示例

我们将使用 `employees` 表来演示 MIN 函数的功能。

employees_table

要找到员工的最低薪水,需要将 MIN 函数应用于 `employees` 表的 `salary` 列。

SELECT 
    MIN(salary)
FROM
    employees;Code language: SQL (Structured Query Language) (sql)

试一试

SQL MIN example

要获取薪酬最低的员工信息,需要使用以下子查询

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	salary = (
		SELECT
			MIN(salary)
		FROM
			employees
	);
Code language: SQL (Structured Query Language) (sql)

试一试

SQL MIN with Subquery example

首先,子查询返回最低薪酬。然后,外部查询检索薪水等于子查询返回的最低薪酬的员工。

带 GROUP BY 的 SQL MIN 示例

我们通常将 MIN 函数与 GROUP BY 子句结合使用,以查找每个组中的最小值。

例如,以下查询返回在每个部门中薪酬最低的员工。

SELECT
	department_id,
	MIN(salary)
FROM
	employees
GROUP BY
	department_id;Code language: SQL (Structured Query Language) (sql)

试一试

SQL MIN with GROUP BY example

GROUP BY 子句按部门对员工进行分组。对于每个组,该查询返回薪酬最低的行。

只要看到部门的名称,结果集就不具备信息性。

要在结果集中组合部门的名称,我们需要使用内连接子句将 `employees` 表与 `departments` 连接,如下所示

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id;Code language: SQL (Structured Query Language) (sql)

试一试

SQL MIN with INNER JOIN example

带 ORDER BY 的 SQL MIN 示例

要按 MIN 函数的结果对组进行排序,需要将 MIN 函数放在 ORDER BY 子句中。

以下查询首先检索每个部门中薪酬最低的员工,然后按薪酬升序对这些部门进行排序。

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id
ORDER BY
	MIN(salary);Code language: SQL (Structured Query Language) (sql)

试一试

SQL MIN with ORDER BY example

HAVING 子句中的 SQL MIN 示例

使用 HAVING 子句 为组指定筛选条件。要基于 MIN 函数的结果筛选组,请将 MIN 函数放入 HAVING 子句中。

例如,以下查询检索每个部门中薪酬最低的员工。然后,只包含薪酬低于 3000 的部门。

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id
HAVING
	MIN(salary) < 3000;Code language: SQL (Structured Query Language) (sql)

试一试

SQLMIN with HAVING example

现在,你应该知道如何使用 SQL MIN 函数来查找一组值中的最小值。

本教程是否对你有所帮助?