다음을 통해 공유


집계 함수

집계 함수는 값 집합에 대한 계산을 수행하고 값을 반환합니다. 이렇게 하면 오버헤드가 거의 없는 다중 수준 그룹에 대한 요약 통계를 생성할 수 있습니다.

집계 함수 정보

Windows Search 구조적 쿼리 언어(SQL)의 집계 함수에는 다음 구문이 있습니다.

AGGREGATE <function> [AS <label>] [,<function> [AS <label>]]*

함수 부분에는 다음 함수 및 구문이 포함될 수 있습니다.

함수 설명
AVG(<column>) 그룹 내 값의 평균을 반환합니다. 숫자에만 적용됩니다.
BYFREQUENCY(<column>, <N>) 그룹의 결과에서 가장 빈번한 N 열 값을 반환합니다. 또한 각 값이 발생한 횟수와 반환된 각 값이 포함된 결과의 문서 식별자도 포함됩니다.
CHILDCOUNT() 그룹의 항목 수를 반환합니다(하위 그룹 제외). 여러 수준의 그룹화가 있는 경우 직행 자식 그룹의 수가 반환됩니다.
COUNT() 그룹 및 모든 하위 그룹의 항목 수를 반환합니다.
DATERANGE(<column>) 그룹 결과 그룹에 있는 열 값의 하한과 상한을 반환합니다. 파일 시간 속성에만 유효합니다.
FIRST(<column>, <N>) 그룹에 있는 리프 결과에서 첫 번째 N 열 값을 반환합니다.
MAX(<column>) 식의 최대값을 반환합니다. 숫자 또는 날짜에만 적용됩니다.
MIN(<column>) 식의 최소값을 반환합니다. 숫자 또는 날짜에만 적용됩니다.
REPRESENTATIVEOF(<column>, <idRepresentative>, <N>) 각각 고유한 열 값이 있는 결과 하위 집합 중 하나에서 선택된 N idRepresentative 값을 반환합니다. 또한 각 값은 idRepresentative 값이 있는 문서 식별자와 함께 반환됩니다.
SUM(<column>) 그룹의 값 합계를 반환합니다. 숫자에만 적용됩니다.

 

 

참고

집계는 개별 열로 반환됩니다. 복합 형식으로 반환되는 ByFrequency, First, DateRange 및 RepresentativeOf를 제외하고 대부분 간단한 형식입니다.

 

집계에 숫자 또는 날짜 열을 사용할 수 있으며 SELECT 절에 있는 열뿐만 아니라 집계에도 사용할 수 있습니다. 그러나 집계에서는 그룹화할 수 없습니다. 전달된 열 인수가 숫자 또는 날짜 형식이 아닌 경우 구문 오류가 반환됩니다.

레이블 부분은 선택 사항이며 레이블에 대해 더 읽기 쉬운 별칭을 제공합니다. 별칭 레이블을 포함하지 않으면 Windows Search는 함수와 열 이름을 레이블로 변환합니다. 예를 들어 MAX(System.Document.WordCount)는 MAX_SystemDocumentWordCount 됩니다.

다중 수준 그룹 및 계산

집계는 나뭇잎 위에 정의되며 중복됩니다. 집계는 자식의 하위 그룹이 아닌 그룹(문서)을 정의하는 그룹의 리프를 입력으로 사용합니다. 이 기능을 다단계 그룹화라고 합니다.

나뭇잎에 대해 정의되고 중복되는 집계 외에도 한 번만 계산됩니다. 동일한 문서가 한 그룹에서 여러 번 표시될 수 있지만 집계는 한 번만 고려합니다. 다음 그래픽에서는 이 개념을 보여 줍니다.

집계가 나뭇잎 위에 정의되고 중복되고 한 번만 계산됨을 보여 주는 다이어그램

집계 예제

다음은 GROUP ON 절 내의 집계 함수 예입니다.

GROUP ON System.Sender ['d','m','r'] 
    AGGREGATE COUNT() as 'Total',
              MAX(System.Size) as 'Max Size',
              MIN(System.Size) as 'Min Size'
    OVER (SELECT System.Subject FROM systemindex)
              
GROUP ON System.Sender ['d', 'm', 'r']
      AGGREGATE MAX(System.Search.Rank) as 'MaxRank', 
                MIN(System.Search.Rank) as 'MinRank'
      OVER (GROUP ON system.conversationID
                  OVER (SELECT workid, System.ItemUrl FROM systemindex
                        WHERE CONTAINS (*, 'sometext')
                        ORDER BY System.DateCreated))
               
GROUP ON System.FileName [before('a'),before('z')] 
      AGGREGATE MAX(System.Size) as 'maxsize', MIN(System.Size) as 'MinSize' 
      OVER (SELECT System.FileName FROM systemindex
            ORDER BY System.FileName)      
            
GROUP ON System.author 
      AGGREGATE MAX(System.size) as 'maxsize' 
      ORDER BY min(System.Size) 
      OVER (GROUP ON System.DateCreated 
                  AGGREGATE Count() 
                  ORDER BY MAX(System.size) 
                  OVER (SELECT filename, System.DateCreated, System.Size FROM systemindex
                        WHERE CONTAINS('text')))

반환 값

반환 값은 행 집합에서 지정된 별칭으로 또는 별칭 레이블이 지정되지 않은 경우 "집계"로 사용자 지정 속성으로 찾은 변형입니다.