SQL Server Min()函數

在本教學中,將學習如何使用SQL Server MIN()函數來查找集合中的最小值。

SQL Server MIN()函數是一個聚合函數,用於在集合中查找最小值。 以下是MIN()函數的語法:

MIN(expression)

MIN()函數接受可以是列或有效運算式的運算式。 MIN()函數適用於集合中的所有值。 這意味著DISTINCT修飾符對MIN()函數沒有影響。

注意,MIN()函數忽略NULL值。

SQL Server MIN()函數示例

下麵將使用示例資料庫中的productscategories表進行演示。

產品和分類表結構

1. SQL Server MIN()函數簡單的例子

以下示例查找所有產品的最低價格:

SELECT
    MIN(list_price) 最低價格

FROM
    production.products;

執行上面查詢語句,得到以下結果:

產品最低價格

要查找價格最低的產品,請使用以下查詢:

SELECT
    product_id,
    product_name,
    list_price
FROM
    production.products
WHERE
    list_price = (
        SELECT
            MIN(list_price )
        FROM
            production.products);

執行上面查詢語句,得到以下結果:

最低價格的產品

首先,子查詢使用MIN()函數返回最低的定價,然後外部查詢查找其價格等於最低價格的產品。

2. SQL Server MIN()函數帶有GROUP BY子句的示例

以下語句查找每個產品類別的最低價格:

SELECT
    category_name,
    MIN(list_price) min_list_price
FROM
    production.products p
    INNER JOIN production.categories c
        ON c.category_id = p.category_id
GROUP BY
    category_name
ORDER BY
    category_name;

執行上面查詢語句,得到以下結果:
最低價格品牌

在這個例子中:

  • 首先,GROUP BY子句按類別名稱將產品分為組。
  • 其次,MIN()函數應用於每個分組,以找到每個組的最低價格。

3. SQL Server MIN()帶有HAVING子句示例

以下示例使用MIN()函數與HAVING子句中的來獲取最低價格大於500的產品類別。

SELECT
    category_name,
    MIN(list_price) min_list_price
FROM
    production.products p
    INNER JOIN production.categories c
        ON c.category_id = p.category_id
GROUP BY
    category_name
HAVING
    MIN(list_price) > 500
ORDER BY
    category_name;

執行上面查詢語句,得到以下結果:

最低價格的產品

在本教學中,學習了如何使用SQL Server MIN()函數來查找一個分組值中的最小值。


上一篇: SQL Server聚合函數 下一篇: SQL Server日期函數