共用方式為


分鐘 (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

傳回群組中指定運算式所有值的最小值。 後面可以跟著 OVER 子句。

備註

若要取得內嵌多個運算式的所有值的最小值,請參閱 邏輯函數 - LEAST。

Transact-SQL 語法慣例

語法

聚合函數語法:

MIN ( [ ALL | DISTINCT ] expression )

解析函數語法:

MIN ( [ ALL ] expression ) OVER ( [ <partition_by_clause> ] [ <order_by_clause> ] )

引數

ALL

將彙總函式套用至所有值。 ALL 是預設值。

DISTINCT

指定要考量每個唯一值。 DISTINCT 與 沒有 MIN意義,並且僅適用於 ISO 相容性。

expression

常數、資料行名稱或函式,以及算術運算子、位元運運算元和字串運算子的任意組合。 MIN 可與 numericcharncharvarcharnvarcharuniqueidentifierdatetime 資料行搭配使用,但不能與 位元 資料行搭配使用。 不允許彙總函式和子查詢。

如需詳細資訊,請參閱運算式

超過 ( [ partition_by_clause ] [ order_by_clause ] )

partition_by_clause 會將子句所 FROM 產生的結果集分割成套用函式的分割區。 如未指定,此函數會將查詢結果集的所有資料列視為單一群組。

order_by_clause 可決定執行作業的邏輯順序。

如需相關資訊,請參閱 SELECT - OVER 子句

傳回類型

傳回與 expression 相同的值。

備註

MIN 忽略任何空值。

使用字元資料直欄時, MIN 會尋找對照順序中的最低值。

MIN在不使用 and OVER 子句時ORDER BY是一個確定性函數。 當使用 and OVER 子句指定ORDER BY時,它是不確定的。 如需詳細資訊,請參閱 確定性和非確定性函數

MIN 在一組列上運作。 若要取得一組內嵌值的最小值,請參閱 邏輯函數 - 最小值。

範例

本文中的程式代碼範例會使用 AdventureWorks2025AdventureWorksDW2025 範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。

A. 基本範例

下列範例會傳回最低 (最小) 稅率。

SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO

結果集如下所示。

-------------------
5.00

B. 使用 OVER 子句

下列範例會使用 、 、 和MIN函式搭配子MAX句,為表格中的AVG每個部門提供彙總COUNT值。 OVERHumanResources.Department

SELECT DISTINCT Name,
                MIN(Rate) OVER (PARTITION BY edh.DepartmentID) AS MinSalary,
                MAX(Rate) OVER (PARTITION BY edh.DepartmentID) AS MaxSalary,
                AVG(Rate) OVER (PARTITION BY edh.DepartmentID) AS AvgSalary,
                COUNT(edh.BusinessEntityID) OVER (PARTITION BY edh.DepartmentID) AS EmployeesPerDept
FROM HumanResources.EmployeePayHistory AS eph
     INNER JOIN HumanResources.EmployeeDepartmentHistory AS edh
         ON eph.BusinessEntityID = edh.BusinessEntityID
     INNER JOIN HumanResources.Department AS d
         ON d.DepartmentID = edh.DepartmentID
WHERE edh.EndDate IS NULL
ORDER BY Name;

結果集如下所示。

Name                          MinSalary             MaxSalary             AvgSalary             EmployeesPerDept
----------------------------- --------------------- --------------------- --------------------- ----------------
Document Control              10.25                 17.7885               14.3884               5
Engineering                   32.6923               63.4615               40.1442               6
Executive                     39.06                 125.50                68.3034               4
Facilities and Maintenance    9.25                  24.0385               13.0316               7
Finance                       13.4615               43.2692               23.935                10
Human Resources               13.9423               27.1394               18.0248               6
Information Services          27.4038               50.4808               34.1586               10
Marketing                     13.4615               37.50                 18.4318               11
Production                    6.50                  84.1346               13.5537               195
Production Control            8.62                  24.5192               16.7746               8
Purchasing                    9.86                  30.00                 18.0202               14
Quality Assurance             10.5769               28.8462               15.4647               6
Research and Development      40.8654               50.4808               43.6731               4
Sales                         23.0769               72.1154               29.9719               18
Shipping and Receiving        9.00                  19.2308               10.8718               6
Tool Design                   8.62                  29.8462               23.5054               6

範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

C. 使用 MIN

下列範例使用 MIN 彙總函數傳回一組指定銷售訂單中最便宜 (最低) 產品的價格。

-- Uses AdventureWorks
SELECT DISTINCT MIN(UnitPrice)
FROM dbo.FactResellerSales
WHERE SalesOrderNumber IN (N'SO43659', N'SO43660', N'SO43664');

結果集如下所示。

------
5.1865

D. 將 MIN 與 OVER 搭配使用

下列範例使用 MIN OVER() 分析函數來傳回每個銷售訂單中最便宜產品的價格。 結果集會根據 SalesOrderID 資料行進行分割。

-- Uses AdventureWorks
SELECT DISTINCT MIN(UnitPrice) OVER (PARTITION BY SalesOrderNumber) AS LeastExpensiveProduct,
                SalesOrderNumber
FROM dbo.FactResellerSales
WHERE SalesOrderNumber IN (N'SO43659', N'SO43660', N'SO43664')
ORDER BY SalesOrderNumber;

結果集如下所示。

LeastExpensiveProduct SalesOrderID
--------------------- ----------
5.1865                SO43659
419.4589              SO43660
28.8404               SO43664