SQL MIN 函式

摘要:本教程透過例項幫助您精通 SQL MIN 函式。學完本教程後,您將知道如何有效地應用 MIN 函式來查詢一組值中的最小值。

SQL MIN 函式簡介 #

SQL MIN 函式返回一組值中的最小值。

以下是 MIN 函式的語法。

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

MAX 函式類似,MIN 函式也會忽略 NULL 值,並且在使用 DISTINCT 選項時沒有任何影響。

SQL MIN 函式示例 #

我們將使用 employees 表來演示 MIN 函式的功能。

employees_table

要查詢員工的最低(最小)薪水,您可以對 employees 表的 salary 列應用 MIN 函式。

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

試一試

輸出

 min_salary
------------
    2500.00Code language: CSS (css)

要獲取薪水最低的員工資訊,您可以使用以下子查詢

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

試一試

輸出

 first_name | last_name  | salary
------------+------------+---------
 Karen      | Colmenares | 2500.00

查詢工作原理

  • 首先,子查詢返回最低薪水。
  • 然後,外部查詢檢索薪水等於子查詢返回的最低薪水的員工。

SQL MIN 函式與 GROUP BY 結合使用的示例 #

我們經常將 MIN 函式與 GROUP BY 子句一起使用,以查詢每個組中的最小值。

例如,以下查詢返回每個部門中薪水最低的員工。

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

試一試

輸出

 department_id |   min
---------------+----------
            11 |  8300.00
             9 | 17000.00
             3 |  2500.00
             5 |  2700.00
             4 |  6500.00
            10 |  6900.00
             6 |  4200.00
             2 |  6000.00
             7 | 10000.00
             1 |  4400.00
             8 |  6200.00

在此示例中,GROUP BY 子句按部門對員工進行分組。對於每個組,查詢返回薪水最低的行。

只要我們能看到部門名稱,結果集的資訊量就不夠大。要在結果集中包含部門名稱,您需要使用內連線(inner join)子句將 employees 表與 departments連線起來,如下所示:

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

試一試

輸出

 department_name  | min_salary
------------------+------------
 Purchasing       |    2500.00
 Shipping         |    2700.00
 IT               |    4200.00
 Administration   |    4400.00
 Marketing        |    6000.00
 Sales            |    6200.00
 Human Resources  |    6500.00
 Finance          |    6900.00
 Accounting       |    8300.00
 Public Relations |   10000.00
 Executive        |   17000.00Code language: PHP (php)

SQL MIN 函式與 HAVING 結合使用的示例 #

您可以使用 HAVING 子句為分組指定篩選條件。要根據 MIN 函式的結果篩選分組,您可以將 MIN 函式放在 HAVING 子句中。

例如,以下查詢檢索每個部門中薪水最低的員工。然後,它只包含薪水小於 3000 的部門。

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

試一試

輸出

 department_name | min_salary
-----------------+------------
 Purchasing      |    2500.00
 Shipping        |    2700.00

摘要 #

  • 使用 MIN 函式查詢一組值中的最小值。
  • MIN 函式與 GROUP BY 子句結合使用,以檢索每個組的最小值。

資料庫 #

本教程是否有幫助?
© .