# EvaluateAggregatedExpressionRequest

Canonical page: https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest

Request for `evaluateAggregatedExpression`.

Default target is all grid rows. Pass `dataSet` to aggregate over a
caller-supplied array instead, or `rowScope` / `rowFilter` to narrow the
grid row set. `dataSet` is mutually exclusive with `rowScope` / `rowFilter`.

```ts title="TypeScript"
export interface EvaluateAggregatedExpressionRequest extends EvaluateExpressionOptions 
```

###### Extends

[`EvaluateExpressionOptions`](https://www.adaptabletools.com/docs/reference/evaluateexpressionoptions.md)

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [columns](https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest.md#columns) | [`ExternalDataColumn`](https://www.adaptabletools.com/docs/reference/externaldatacolumn.md)`[]` | dataType metadata for keys on `dataSet` rows that are not grid columns.<br/>Ignored unless `dataSet` is provided. |
| [dataSet](https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest.md#dataset) | `Record<string, unknown>[]` | Aggregate over these plain-object rows instead of the grid. AG Grid<br/>`valueGetter`s do not run. Mutually exclusive with `rowScope` / `rowFilter`. |
| [expression](https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest.md#expression) | `string` | Aggregated AdaptableQL Expression to evaluate. |
| [rowFilter](https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest.md#rowfilter) | `(rowNode: IRowNode) => boolean` | Extra predicate applied to the scoped grid rows (logical AND with any<br/>`WHERE` clause in the expression). Receives AG Grid `IRowNode`s.<br/>Mutually exclusive with `dataSet`. |
| [rowScope](https://www.adaptabletools.com/docs/reference/evaluateaggregatedexpressionrequest.md#rowscope) | `'all' \| 'visible'` | Grid-row set to aggregate over. `'all'` (default) uses every loaded row;<br/>`'visible'` uses rows the user currently sees (after grid / AdapTable<br/>filters). Group rows are excluded in both cases. Mutually exclusive with<br/>`dataSet`. |

## Property Details

### columns

dataType metadata for keys on `dataSet` rows that are not grid columns.
Ignored unless `dataSet` is provided.

```ts title="TypeScript"
columns?: ExternalDataColumn[];
```

###### Property Value

[`ExternalDataColumn`](https://www.adaptabletools.com/docs/reference/externaldatacolumn.md)`[]`

### dataSet

Aggregate over these plain-object rows instead of the grid. AG Grid
`valueGetter`s do not run. Mutually exclusive with `rowScope` / `rowFilter`.

```ts title="TypeScript"
dataSet?: Record<string, unknown>[];
```

###### Property Value

`Record<string, unknown>[]`

### expression

Aggregated AdaptableQL Expression to evaluate.

```ts title="TypeScript"
expression: string;
```

###### Property Value

`string`

### rowFilter

Extra predicate applied to the scoped grid rows (logical AND with any
`WHERE` clause in the expression). Receives AG Grid `IRowNode`s.
Mutually exclusive with `dataSet`.

```ts title="TypeScript"
rowFilter?: (rowNode: IRowNode) => boolean;
```

###### Property Value

`(rowNode: IRowNode) => boolean`

### rowScope

Grid-row set to aggregate over. `'all'` (default) uses every loaded row;
`'visible'` uses rows the user currently sees (after grid / AdapTable
filters). Group rows are excluded in both cases. Mutually exclusive with
`dataSet`.

```ts title="TypeScript"
rowScope?: 'all' | 'visible';
```

###### Property Value

`'all' | 'visible'`
