다음을 통해 공유


MIN(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure 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 기본값입니다.

DISTINCT

각 고유 값을 고려하도록 지정합니다. DISTINCT 는 의미가 MIN없으며 ISO 호환성에서만 사용할 수 있습니다.

expression

상수, 열 이름 또는 함수 및 산술, 비트 및 문자열 연산자의 조합입니다. MIN 는 숫자, char, nchar, varchar, nvarchar, uniqueidentifier 또는 datetime 열과 함께 사용할 수 있지만 비트 열에는 사용할 수 없습니다. 집계 함수 및 하위 쿼리는 허용되지 않습니다.

자세한 내용은 을 참조하세요.

오버 ([ partition_by_clause ] [ order_by_clause ] )

partition_by_clause 절에서 생성된 결과 집합을 FROM 함수가 적용되는 파티션으로 나눕니다. 지정하지 않을 경우 쿼리 결과 집합의 모든 행이 단일 그룹으로 취급됩니다.

order_by_clause는 작업이 수행되는 논리적 순서를 결정합니다.

자세한 내용은 SELECT - OVER 절을 참조하세요.

반환 형식

과 동일한 값을 반환합니다.

설명

MIN 은 null 값을 무시합니다.

문자 데이터 열을 사용하여 MIN 정렬 시퀀스에서 가장 낮은 값을 찾습니다.

MIN는 and OVER 절 없이 ORDER BY 사용할 때 결정적 함수입니다. and OVER 절로 ORDER BY 지정하면 비결정적입니다. 자세한 내용은 결정적 함수 및 비결정적 함수를 참조하세요.

MIN 는 행 집합에서 작동합니다. 인라인 값 집합의 최소값을 가져오려면 논리 함수 - 최소값을 참조하세요.

예제

이 문서의 코드 샘플은 AdventureWorks2025 또는 AdventureWorksDW2025 샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.

A. 기본 예제

다음 예에서는 가장 낮은(최소) 세율이 반환됩니다.

SELECT MIN(TaxRate)
FROM Sales.SalesTaxRate;
GO

결과 집합은 다음과 같습니다.

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

B. OVER 절 사용

다음 예제에서는 절과 함께 , MINMAXAVG 함수를 사용하여 COUNT테이블의 OVER 각 부서에 HumanResources.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 및 분석 플랫폼 시스템(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. OVER와 함께 MIN 사용

다음 예제에서는 분석 함수를 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