SQL Server Max()函數

在本教學中,將學習如何使用SQL Server MAX()函數來查找組中的最大值。

SQL Server MAX()函數簡介

SQL Server MAX()函數是一個聚合函數,它返回集合中的最大值。

以下是MAX()函數的語法:

MAX(expression)

MAX()函數接受一個可以是列或有效運算式的運算式。

MIN()函數類似,MAX()函數忽略NULL值並計算中的所有值。

SQL Server MAX()函數示例

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

產品和品牌表結構

1. SQL Server MAX() - 查找最高價格
以下語句使用MAX()函數查找products表中所有產品的最高價格:

SELECT
    MAX(list_price) max_list_price
FROM
    production.products;

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

查詢最高價格

要查找具有最高價格的產品,請使用以下語句:

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

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

在這個例子中:

  • 首先,子查詢使用MAX()函數返回所有產品的最高價格。
  • 然後,外部查詢選擇其價格等於從子查詢返回的最高價格的產品。

2. SQL Server MAX()帶有GROUP BY子句的示例

以下語句獲取每個品牌的品牌名稱和最高價格:

SELECT
    brand_name,
    MAX(list_price) max_list_price
FROM
    production.products p
    INNER JOIN production.brands b
        ON b.brand_id = p.brand_id
GROUP BY
    brand_name
ORDER BY
    brand_name;

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

品牌名稱和最高價格

在這個例子中:

  • 首先,GROUP BY子句將產品按品牌名稱分組。
  • 然後,MAX()函數應用於每個分組,以返回每個品牌的最高定價。

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

以下示例查找每個品牌名稱和最高定價。 此外,它使用HAVING子句篩選出最高定價大於1999的所有品牌:

SELECT
    brand_name,
    MAX(list_price) max_list_price
FROM
    production.products p
    INNER JOIN production.brands b
        ON b.brand_id = p.brand_id
GROUP BY
    brand_name
HAVING
    MAX(list_price) > 1999
ORDER BY
    max_list_price DESC;

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

MAX()帶有HAVING子句示例


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