Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca wartość minimalną wszystkich wartości określonego wyrażenia w grupie. Po klauzuli OVER można wykonać klauzulę OVER .
Uwaga / Notatka
Aby uzyskać minimalną wartość wszystkich wartości wielu wyrażeń wbudowanych, zobacz Funkcje logiczne — NAJMNIEJ.
Transact-SQL konwencje składni
Składnia
Składnia funkcji agregacji:
MIN ( [ ALL | DISTINCT ] expression )
Składnia funkcji analitycznej:
MIN ( [ ALL ] expression ) OVER ( [ <partition_by_clause> ] [ <order_by_clause> ] )
Arguments
ALL
Stosuje funkcję agregacji do wszystkich wartości.
ALL jest wartością domyślną.
ODMIENNY
Określa, że każda unikatowa wartość jest brana pod uwagę.
DISTINCT nie ma znaczenia w przypadku elementu i jest dostępny tylko w celu zapewnienia zgodności ze standardem MINISO.
expression
Stała, nazwa kolumny lub funkcja oraz dowolna kombinacja operatorów arytmetycznych, bitowych i ciągów.
MIN można używać z kolumnami liczbowymi, char, nchar, varchar, nvarchar, uniqueidentifier lub datetime , ale nie z kolumnami bitowymi . Funkcje agregujące i podzapytania nie są dozwolone.
Aby uzyskać więcej informacji, zobacz Wyrażenia.
KONIEC ( [ partition_by_clause ] [ order_by_clause ] )
partition_by_clause dzieli zestaw wyników generowany przez klauzulę FROM na partycje, do których jest stosowana funkcja. Jeśli nie zostanie określony, funkcja traktuje wszystkie wiersze zestawu wyników zapytania jako pojedynczą grupę.
order_by_clause określa kolejność logiczną, w której jest wykonywana operacja.
Aby uzyskać więcej informacji, zobacz SELECT — OVER, klauzula.
Typy zwracane
Zwraca wartość taką samą jak wyrażenie.
Uwagi
MIN Ignoruje wszystkie wartości null.
W przypadku kolumn MIN danych znaków znajduje najniższą wartość w sekwencji sortowania.
MIN jest funkcją deterministyczną, gdy jest używana bez OVER klauzul i ORDER BY . Jest to niedeterministyczne, gdy jest określony z klauzulami OVER i ORDER BY . Aby uzyskać więcej informacji, zobacz Funkcje deterministyczne i niedeterministyczne.
MIN działa na zestawie wierszy. Aby uzyskać minimalną wartość zestawu wartości wbudowanych, zobacz Funkcje logiczne — NAJMNIEJ.
Przykłady
Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.
A. Przykład podstawowy
Poniższy przykład zwraca najniższą (minimalną) stawkę podatkową.
SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO
Oto zestaw wyników.
-------------------
5.00
B. Używanie klauzuli OVER
W poniższym przykładzie użyto MINfunkcji , MAX, AVGi COUNT z klauzulą OVER , aby podać zagregowane wartości dla każdego działu w HumanResources.Department tabeli.
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;
Oto zestaw wyników.
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
Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)
C. Użyj min
W poniższym przykładzie użyto MIN funkcji agregującej, aby zwrócić cenę produktu o najniższym (minimalnym) w określonym zestawie zamówień sprzedaży.
-- Uses AdventureWorks
SELECT DISTINCT MIN(UnitPrice)
FROM dbo.FactResellerSales
WHERE SalesOrderNumber IN (N'SO43659', N'SO43660', N'SO43664');
Oto zestaw wyników.
------
5.1865
D. Używanie funkcji MIN z funkcją OVER
W poniższych przykładach użyto funkcji analitycznej MIN OVER() , aby zwrócić cenę najtańszego produktu w każdym zamówieniu sprzedaży. Zestaw wyników jest partycjonowany według kolumny 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;
Oto zestaw wyników.
LeastExpensiveProduct SalesOrderID
--------------------- ----------
5.1865 SO43659
419.4589 SO43660
28.8404 SO43664