Megosztás a következőn keresztül:


MIN (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy csoportban megadott kifejezés összes értékének minimális értékét adja vissza. Az OVER záradék követhető.

Megjegyzés:

Ha több kifejezés összes értékének minimumát szeretné beágyazottan lekérni, olvassa el a Logikai függvények – MINIMUM című témakört.

Transact-SQL szintaxis konvenciók

Szemantika

Aggregációs függvény szintaxisa:

MIN ( [ ALL | DISTINCT ] expression )

Elemzési függvény szintaxisa:

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

Arguments

ALL

Az összesítő függvény alkalmazása az összes értékre. A ALL az alapértelmezett.

KÜLÖNBÖZŐ

Megadja, hogy minden egyedi érték figyelembe legyen véve. DISTINCT nem értelmezhető, MINés csak ISO-kompatibilitás esetén érhető el.

kifejezés

Állandó, oszlopnév vagy függvény, valamint az aritmetikai, bitenkénti és sztring operátorok bármilyen kombinációja. MIN numerikus, karakter, nchar, varchar, nvarchar, uniqueidentifier vagy datetime oszlopokkal használható, bitoszlopokkal azonban nem. Az összesítő függvények és al lekérdezések nem engedélyezettek.

További információ: Kifejezések.

VÉGE ( [ partition_by_clause ] [ order_by_clause ] )

partition_by_clause a záradék által FROM létrehozott eredményhalmazt partíciókra osztja, amelyekre a függvényt alkalmazza. Ha nincs megadva, a függvény a lekérdezés eredményhalmazának összes sorát egyetlen csoportként kezeli.

order_by_clause határozza meg a művelet végrehajtásának logikai sorrendjét.

További információ: SELECT – OVER záradék.

Visszatérési típusok

A kifejezéssel megegyező értéket ad vissza.

Megjegyzések

MIN figyelmen kívül hagyja a null értékeket.

A karakteradatoszlopokkal MIN megkeresi a rendezési sorrend legalacsonyabb értékét.

MINdeterminisztikus függvény, ha a záradékok és OVER a ORDER BY záradékok nélkül használják. Nemdeterminisztikus, ha a OVER záradékokkal együtt ORDER BY van megadva. További információ: Determinisztikus és nemdeterminista függvények.

MIN sorhalmazon működik. Ha be szeretné szerezni a beágyazott értékhalmaz minimális értékét, olvassa el a Logikai függvények – MINIMUM című témakört.

Példák

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. Egyszerű példa

Az alábbi példa a legalacsonyabb (minimális) adókulcsot adja vissza.

SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO

Itt van az eredmények összessége.

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

B. Az OVER záradék használata

Az alábbi példa a záradékkal együtt használja a , , és függvényeket, MIN hogy összesített értékeket adjon meg a MAX tábla minden részlegéhez.AVGCOUNTOVERHumanResources.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;

Itt van az eredmények összessége.

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

C. A MIN használata

Az alábbi példa az MIN aggregátumfüggvényt használja a legkevésbé költséges (minimális) termék árának visszaadására egy megadott értékesítési rendeléskészletben.

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

Itt van az eredmények összessége.

------
5.1865

D. A MIN és a OVER használata

Az alábbi példák az MIN OVER() elemzési függvény használatával a legkevésbé költséges termék árát adja vissza az egyes értékesítési rendelésekben. Az eredményhalmazt az SalesOrderID oszlop particionálta.

-- 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;

Itt van az eredmények összessége.

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