在本教程中,将学习如何使用SQL Server MAX()函数来查找组中的最大值。
SQL Server MAX()函数简介
SQL Server MAX()函数是一个聚合函数,它返回集合中的最大值。
以下是MAX()函数的语法:
MAX(expression)
MAX()函数接受一个可以是列或有效表达式的表达式。
与MIN()函数类似,MAX()函数忽略NULL值并计算中的所有值。
SQL Server MAX()函数示例
下面将使用示例数据库中的 products 和 brands表进行演示:

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;
执行上面查询语句,得到以下结果:

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