在本教程中,将学习如何使用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;
执行上面查询语句,得到以下结果: