집계 함수 - min
적용 대상:SQL Server
값이 다른 모든 항목보다 작은 항목인 원자성 값 시퀀스($arg)에서 반환합니다.
구문
fn:min($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?
인수
$arg
최소값을 반환할 항목의 시퀀스입니다.
설명
min()에 전달되는 원자화된 값의 모든 형식은 동일한 기본 형식의 하위 형식이어야 합니다. 허용되는 기본 형식은 gt 작업을 지원하는 형식입니다. 이러한 유형에는 3가지 기본 제공 숫자 기본 유형, 날짜/시간 기본 유형, xs:string, xs:boolean 및 xdt:untypedAtomic이 포함됩니다. xdt:untypedAtomic 유형의 값이 xs:double로 캐스팅됩니다. 이러한 형식이 혼합되어 있거나 다른 형식의 다른 값이 전달되면 정적 오류가 발생합니다.
min()의 결과는 xdt:untypedAtomic의 경우 xs:double과 같이 전달된 형식의 기본 형식을 받습니다. 입력이 정적으로 비어 있으면 빈 값이 암시적으로 표시되고 정적 오류가 반환됩니다.
min() 함수는 입력 시퀀스의 다른 값보다 작은 값 하나를 시퀀스에서 반환합니다. xs:string 값의 경우 기본 Unicode Codepoint Collation이 사용됩니다. xdt:untypedAtomic 값을 xs:double로 캐스팅할 수 없는 경우 입력 시퀀스 $arg 값이 무시됩니다. 입력이 동적으로 계산된 빈 시퀀스이면 빈 시퀀스가 반환됩니다.
예
이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 형식 열에 저장된 XML 인스턴스에 대한 XQuery 예제를 제공합니다.
A. min() XQuery 함수를 사용하여 작업 시간이 가장 적은 작업 센터 위치를 찾습니다.
다음 쿼리는 제품 모델(ProductModelID=7)의 제조 프로세스에서 노동 시간이 최소인 모든 업무 센터 위치를 검색합니다. 일반적으로 다음과 같이 단일 위치가 반환됩니다. 여러 위치에서 최소 노동 시간이 같은 경우 해당 위치가 모두 반환됩니다.
select ProductModelID, Name, Instructions.query('
declare namespace AWMI=
"https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
for $Location in /AWMI:root/AWMI:Location
where $Location/@LaborHours =
min( /AWMI:root/AWMI:Location/@LaborHours )
return
<Location WCID= "{ $Location/@LocationID }"
LaborHrs= "{ $Location/@LaborHours }" />
') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
이전 쿼리의 다음 사항에 유의하세요.
- XQuery 프롤로그의 네임스페이스 키워드는 네임스페이스 접두사를 정의합니다. 그러면 이 접두사는 XQuery 본문에 사용됩니다.
XQuery 본문은 WCID 및 LaborHrs 특성이 있는 <Location> 요소가 있는 XML을 생성합니다.
- 또한 쿼리는 ProductModelID 및 이름 값을 검색합니다.
결과는 다음과 같습니다.
ProductModelID Name Result
--------------- ---------------- ---------------------------------
7 HL Touring Frame <Location WCID="45" LaborHrs="0.5"/>
구현 제한 사항
제한 사항은 다음과 같습니다.
min() 함수는 모든 정수를 xs:decimal에 매핑합니다.
xs:duration 형식의 값에 대한 min() 함수는 지원되지 않습니다.
기본 형식 경계 간에 형식을 혼합하는 시퀀스는 지원되지 않습니다.
데이터 정렬을 제공하는 구문 옵션은 지원되지 않습니다.