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日期函数