在本教學中,將學習如何使用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日期函數