Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar maximalt antal värden för det angivna uttrycket i en grupp. Kan följas av OVER-satsen .
Anmärkning
Om du vill få maximalt antal värden för flera uttryck infogade läser du Logiska funktioner – GREATEST.
Transact-SQL syntaxkonventioner
Syntax
Syntax för sammansättningsfunktionen:
MAX ( [ ALL | DISTINCT ] expression )
Analysfunktionssyntax:
MAX ( [ ALL ] expression) OVER ( [ <partition_by_clause> ] [ <order_by_clause> ] )
Arguments
ALL
Tillämpar aggregeringsfunktionen på alla värden.
ALL används som standard.
SÄRSKILD
Anger att varje unikt värde beaktas.
DISTINCT är inte meningsfullt med MAXoch är endast tillgängligt för ISO-kompatibilitet.
uttryck
En konstant, kolumnnamn eller funktion och valfri kombination av aritmetiska operatorer, bitvis och strängoperatorer.
MAX kan användas med kolumner för numeriska kolumner, tecken, nchar, varchar, nvarchar, uniqueidentifier eller datetime , men inte med bitkolumner . Mängdfunktioner och underfrågor är inte tillåtna.
Mer information finns i Uttryck.
ÖVER ( [ partition_by_clause ] [ order_by_clause ] )
partition_by_clause delar upp resultatuppsättningen FROM som genereras av -satsen i partitioner som funktionen tillämpas på. Om det inte anges behandlar funktionen alla rader i frågeresultatuppsättningen som en enda grupp.
order_by_clause avgör i vilken logisk ordning åtgärden utförs.
Mer information finns i SELECT - OVER-satsen.
Returtyper
Returnerar ett värde som är samma som uttryck.
Anmärkningar
MAX ignorerar alla null-värden.
MAX returnerar NULL när det inte finns någon rad att välja.
För teckenkolumner MAX hittar du det högsta värdet i sorteringssekvensen.
MAX är en deterministisk funktion när den OVER används utan - och-satserna ORDER BY . Det är icke-terministiskt när det OVER anges med - och-satserna ORDER BY . Mer information finns i Deterministiska och icke-terministiska funktioner.
MAX fungerar på en uppsättning rader. Information om hur du hämtar det maximala värdet för en uppsättning värden finns i Logiska funktioner – GREATEST.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2025- eller AdventureWorksDW2025-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
A. Grundläggande exempel
I följande exempel returneras den högsta (högsta) skattesatsen.
SELECT MAX(TaxRate)
FROM Sales.SalesTaxRate;
GO
Här är resultatet.
-------------------
19.60
Warning, null value eliminated from aggregate.
B. Använda OVER-satsen
I följande exempel används MINfunktionerna , MAX, AVGoch COUNT med OVER -satsen för att tillhandahålla aggregerade värden för varje avdelning i HumanResources.Department tabellen.
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;
Här är resultatet.
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. Använd MAX med teckendata
I följande exempel returneras databasnamnet som sorterar med hjälp av databasnamnet alfabetiskt. I exemplet används WHERE database_id < 5för att välja systemdatabaserna.
SELECT MAX(name)
FROM sys.databases
WHERE database_id < 5;
Den sista systemdatabasen är tempdb.