집계 함수는 값 집합에 대해 계산을 수행하고 값을 반환합니다. 이렇게 하면 오버헤드가 거의 없는 다단계 그룹에 대한 요약 통계를 생성할 수 있습니다.
집계 함수 정보
Windows SEARCH SQL(구조적 쿼리 언어)의 집계 함수에는 다음 구문이 있습니다.
AGGREGATE <function> [AS <label>] [,<function> [AS <label>]]*
함수 부분에는 다음 함수 및 구문이 포함될 수 있습니다.
| 기능 | 묘사 |
|---|---|
| AVG(<열>) | 그룹의 값 평균을 반환합니다. 숫자에만 적용됩니다. |
| BYFREQUENCY(<열>, <N>) | 그룹의 결과에서 가장 빈번한 N 열 값을 반환합니다. 또한 각 값이 발생한 횟수 및 반환된 각 값을 포함하는 결과에 대한 문서 식별자를 포함합니다. |
| CHILDCOUNT() | 그룹의 항목 수를 반환합니다(하위 그룹 제외). 그룹화 수준이 여러 개 있는 경우 직위 자식 그룹의 수가 반환됩니다. |
| COUNT() | 그룹 및 모든 하위 그룹의 항목 수를 반환합니다. |
| DATERANGE(<열>) | 그룹 결과 그룹에 있는 열 값의 하한과 상한을 반환합니다. 파일 시간 속성에만 유효합니다. |
| FIRST(<열>, <N>) | 그룹에 있는 리프 결과에서 첫 번째 N 열 값을 반환합니다. |
| MAX(<열>) | 식의 최대값을 반환합니다. 숫자 또는 날짜에만 적용됩니다. |
| MIN(<열>) | 식의 최소값을 반환합니다. 숫자 또는 날짜에만 적용됩니다. |
| REPRESENTATIVEOF(<열>, <idRepresentative>, <N>) | 각각 고유한 열 값이 있는 결과 하위 집합 중 하나에서 선택된 N idRepresentative 값을 반환합니다. 또한 각 값은 idRepresentative 값이 있는 문서 식별자와 함께 반환됩니다. |
| SUM(<열>) | 그룹의 값 합계를 반환합니다. 숫자에만 적용됩니다. |
메모
집계는 개별 열로 반환됩니다. 복합 형식으로 반환되는 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')))
반환 값
반환 값은 행 집합에서 지정된 별칭으로 사용자 지정 속성으로 찾은 변형이거나 별칭 레이블이 지정되지 않은 경우 "집계"입니다.