집계 함수 - count
적용 대상:SQL Server
$arg 지정한 시퀀스에 포함된 항목 수를 반환합니다.
구문
fn:count($arg as item()*) as xs:integer
인수
$arg
계산할 항목입니다.
설명
$arg 빈 시퀀스이면 0을 반환합니다.
예
이 항목에서는 AdventureWorks 데이터베이스의 다양한 xml 형식 열에 저장된 XML 인스턴스에 대한 XQuery 예제를 제공합니다.
A. count() XQuery 함수를 사용하여 제품 모델 제조에서 작업 센터 위치 수 계산
다음 쿼리는 제품 모델 제조 프로세스의 작업 센터 위치 수를 계산합니다(ProductModelID=7).
SELECT Production.ProductModel.ProductModelID,
Production.ProductModel.Name,
Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
<NoOfWorkStations>
{ count(/AWMI:root/AWMI:Location) }
</NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID=7
이전 쿼리의 다음 사항에 유의하세요.
XQuery Prolog의 네임스페이스 키워드는 네임스페이스 접두사를 정의합니다. 그런 다음 XQuery 본문에서 접두사를 사용합니다.
쿼리는 요소를 포함하는 XML을 생성합니다 <
NoOfWorkStations
> .XQuery 본문의 count() 함수는 요소 수를 <
Location
> 계산합니다.
결과는 다음과 같습니다.
ProductModelID Name WorkCtrCount
-------------- ---------------------------------------------------
7 HL Touring Frame <NoOfWorkStations>6</NoOfWorkStations>
다음 쿼리와 같이 제품 모델 ID 및 이름을 포함하도록 XML을 생성할 수도 있습니다.
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
<NoOfWorkStations
ProductModelID= "{ sql:column("Production.ProductModel.ProductModelID") }"
ProductModelName = "{ sql:column("Production.ProductModel.Name") }" >
{ count(/AWMI:root/AWMI:Location) }
</NoOfWorkStations>
') as WorkCtrCount
FROM Production.ProductModel
WHERE Production.ProductModel.ProductModelID= 7
결과는 다음과 같습니다.
<NoOfWorkStations ProductModelID="7"
ProductModelName="HL Touring Frame">6</NoOfWorkStations>
다음 쿼리와 같이 XML 대신 이러한 값을 비-xml 유형으로 반환할 수도 있습니다. 쿼리는 value() 메서드(xml 데이터 형식)를 사용하여 작업 센터 위치 수를 검색합니다.
SELECT ProductModelID,
Name,
Instructions.value('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
count(/AWMI:root/AWMI:Location)', 'int' ) as WorkCtrCount
FROM Production.ProductModel
WHERE ProductModelID=7
결과는 다음과 같습니다.
ProductModelID Name WorkCtrCount
-------------- ---------------------------------
7 HL Touring Frame 6