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


MAX (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 maximális értékét adja vissza. Az OVER záradék követhető.

Megjegyzés:

Ha több kifejezés összes értékének maximális értékét szeretné beágyazottan lekérni, tekintse meg a Logikai függvények – LEGNAGYOBB című témakört.

Transact-SQL szintaxis konvenciók

Szemantika

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

MAX ( [ ALL | DISTINCT ] expression )

Elemzési függvény szintaxisa:

MAX ( [ 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ő, MAXé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. MAX 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

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

MAX akkor ad NULL vissza, ha nincs kijelölendő sor.

A karakteroszlopok MAX esetében a rendezési sorrendben a legmagasabb értéket találja meg.

MAXdeterminisztikus 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.

MAX sorhalmazon működik. A beágyazott értékhalmaz maximális értékének lekéréséhez lásd: Logikai függvények – LEGNAGYOBB.

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 legmagasabb (maximális) adókulcsot adja vissza.

SELECT MAX(TaxRate)
FROM Sales.SalesTaxRate;
GO

Itt van az eredmények összessége.

-------------------
19.60
Warning, null value eliminated from aggregate.

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

C. A MAX használata karakteradatokkal

Az alábbi példa az adatbázis nevét adja vissza betűrendben. A példa a rendszeradatbázisok kiválasztására használja WHERE database_id < 5.

SELECT MAX(name)
FROM sys.databases
WHERE database_id < 5;

Az utolsó rendszeradatbázis.tempdb