# 집계 함수

## Content

보고서에 요약 값을 포함하기 위해 아래에서 설명하는 집계 함수를 사용할 수 있습니다. 모든 집계 함수에는 계산에 사용할 데이터 집합을 결정하는 선택적 `scope` 인수가 포함되어 있습니다. `scope` 인수는 다음 값 중 하나를 가질 수 있습니다.

* [데이터 집합](/activereportsjs/docs/ReportAuthorGuide/Databinding#data-set-configuration)의 이름
* [데이터 영역](/activereportsjs/docs/ReportAuthorGuide/Report-Items/Data-Regions)의 이름
* 그룹 이름(예: [표 그룹](/activereportsjs/docs/ReportAuthorGuide/Report-Items/Data-Regions/Table#table-grouping))

기본적으로 `scope` 인수의 값은 집계 함수를 "호스팅"하는 보고서 항목에 따라 달라지는 현재 범위입니다. 예를 들어, [표 형식 보고서 시작하기 데모](/activereportsjs/demos/Reports/GetStartedWithTabularReports/purejs)에서 표의 [그룹 푸터](/activereportsjs/docs/ReportAuthorGuide/Report-Items/Data-Regions/Table#group-footer)에는 `{Sum(unitsInStock)}` 값을 표시하는 [텍스트 상자](/activereportsjs/docs/ReportAuthorGuide/Report-Items/Data-Visualizers/TextBox)가 있습니다. 이 텍스트 상자는 `Sum` 집계 함수에 대한 호출이고 `scope` 인수는 생략됩니다. 즉, 계산 범위가 그룹 인스턴스입니다. 값이 동일한 텍스트 상자가 [표 헤더](/activereportsjs/docs/ReportAuthorGuide/Report-Items/Data-Regions/Table#table-header)에 있으면 계산 범위는 전체 표입니다.

### AggregateIf

지정된 범위에서 계산되는 식으로 지정된 조건부 집계 값을 반환합니다.
**구문**
AggregateIf(`condition`, `aggregate`, `expression`, [`scope`])
**인수**

* `condition` - `식`을 계산에 포함할지 여부를 나타내는 부울 값으로 평가되는 식
* `aggregate` \- 계산에 사용할 집계 함수의 이름\(예: `Count`)
* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesAmount` 필드 값의 합계를 반환할 수 있습니다. 결과에는 1000보다 큰 SalesAmount 값만 포함됩니다.

```js
{AggregateIf(SalesAmount > 1000, "Sum", SalesAmount)}
```

### Avg

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 평균을 반환합니다.
**구문**
Avg(`expression`, [\`\`\`scope\`\`\`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesCount` 필드 값의 평균을 반환할 수 있습니다.

```js
{Avg(SalesCount)}
```

### Count

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 값의 개수를 반환합니다.
**구문**
Count(`expression`, [\`\`\`scope\`\`\`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 `ProductsTable` 데이터 영역 내 `UnitsOnOrder` 필드 값의 개수를 반환할 수 있습니다.

```js
{Count(UnitsOnOrder, "ProductsTable")}
```

### CountDistinct

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 고유 값의 개수를 반환합니다.
**구문**
CountDistinct(`expression`, [\`\`\`scope\`\`\`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 고유한 `CustomerId` 필드 값의 개수를 반환할 수 있습니다.

```js
{CountDistinct(CustomerId)}
```

### CountRows

지정된 범위 내에서 행 수를 반환합니다.
**구문**
CountRows([\`\`\`scope\`\`\`])
**인수**

* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 행 수를 반환할 수 있습니다.

```js
{CountRows()}
```

### DistinctSum

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 고유한 숫자 값의 합계를 반환합니다.
**구문**
DistinctSum(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 고유한 `Size` 필드 값의 합계를 반환할 수 있습니다.

```js
{DistinctSum(Size)}
```

### First

지정된 범위 내에서 계산되는 지정된 식의 첫 번째 값을 반환합니다.
**구문**
First(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 `ProductsTable` 데이터 영역 내 `ProductName` 필드의 첫 번째 값을 반환할 수 있습니다.

```js
{First(ProductName, "ProductsTable")}
```

### Last

지정된 범위 내에서 계산되는 지정된 식의 마지막 값을 반환합니다.
**구문**
Last(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesAmount` 필드의 마지막 값을 반환할 수 있습니다.

```js
{Last(SalesAmount)}
```

### Max

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 최댓값을 반환합니다.
**구문**
Max(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `Size` 필드 값의 최댓값을 반환할 수 있습니다.

```js
{Max(Size)}
```

### Median

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 [중앙값](https://en.wikipedia.org/wiki/Median)을 반환합니다.
**구문**
Median(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 `Sales` 데이터 영역 내 `SalesAmount` 필드 값의 중앙값을 반환할 수 있습니다.

```js
{Median(SalesAmount, "Sales")}
```

### Min

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 최솟값을 반환합니다.
**구문**
Min(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `Size` 필드 값의 최솟값을 반환할 수 있습니다.

```js
{Min(Size)}
```

### Mode

지정된 범위에서 계산되는 식으로 지정된 값 중 가장 자주 나타나는 값을 반환합니다.
**구문**
Mode(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `ReturnReason` 필드의 값 중 가장 자주 나타나는 값을 반환할 수 있습니다.

```js
{Mode(ReturnReason)}
```

### RunningValue

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 실행 집계를 반환합니다.
**구문**
RunningValue(`expression`, `aggregate`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `aggregate` \- 계산에 사용할 집계 함수의 이름\(예: `Count`)
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesAmount` 필드 값 합계의 실행 값을 반환할 수 있습니다.

```js
{RunningValue(SalesAmount, "Sum")}
```

### StDev

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 표준 편차를 반환합니다.
**구문**
StDev(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `ReturnAmount` 필드 값의 표준 편차를 반환할 수 있습니다.

```js
{StDev(ReturnAmount)}
```

### StDevP

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 모집단 표준 편차를 반환합니다.
**구문**
StDevP(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `ReturnAmount` 필드 값의 모집단 표준 편차를 반환할 수 있습니다.

```js
{StDevP(ReturnAmount)}
```

### Sum

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 합계를 반환합니다.
**구문**
Sum(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesAmount` 필드 값의 합계를 반환할 수 있습니다.

```js
{Sum(SalesAmount)}
```

### Var

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 분산을 반환합니다.
**구문**
Var(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `ReturnAmount` 필드 값의 분산을 반환할 수 있습니다.

```js
{Var(ReturnAmount)}
```

### VarP

지정된 범위에서 계산되는 식으로 지정된 null이 아닌 숫자 값의 모집단 분산을 반환합니다.
**구문**
VarP(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `ReturnAmount` 필드 값의 모집단 분산을 반환할 수 있습니다.

```js
{VarP(ReturnAmount)}
```

### ToArray

지정된 식의 값을 포함하는 [배열](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)을 반환합니다.
**구문**
ToArray(`expression`, [`scope`], [`recursive`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위
* `recursive` \- 계산을 재귀적으로 수행할지 여부를 나타내는 선택적 Recursive 값

**예시**
다음 식을 사용하면 현재 범위 내에서 쉼표로 구분된 `ProductName` 필드 값을 반환할 수 있습니다.

```js
{Join(ToArray(ProductName), " ,")}
```