# SelectFunctionModule (/docs/core/reference/api/interfaces/SelectFunctionModule)



[@kysoql/core](/docs/core/reference/api) / SelectFunctionModule

Scalar, aggregate, date, and geolocation helpers exposed to SELECT
callbacks.

## Extends [#extends]

* [`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule)\<`DB`, `TB`, `GroupingFields`>.[`GeolocationFunctionModule`](/docs/core/reference/api/interfaces/GeolocationFunctionModule)\<`DB`, `TB`>

## Type Parameters [#type-parameters]

| Type Parameter                      | Default type |
| ----------------------------------- | ------------ |
| `DB`                                | -            |
| `TB` *extends* keyof `DB`           | -            |
| `GroupingFields` *extends* `string` | `never`      |

## Methods [#methods]

<a id="api-convertcurrency" />

### convertCurrency() [#convertcurrency]

```ts
convertCurrency<Reference>(field): ConvertCurrencyFunctionBuilder<ConvertCurrencyOutput<DB, TB, Reference>>;
```

Builds a Salesforce `convertCurrency(...)` expression.

#### Type Parameters [#type-parameters-1]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters]

| Parameter | Type                                                                                                                             |
| --------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`CurrencyFieldReference`](/docs/core/reference/api/type-aliases/CurrencyFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns]

[`ConvertCurrencyFunctionBuilder`](/docs/core/reference/api/interfaces/ConvertCurrencyFunctionBuilder)\<`ConvertCurrencyOutput`\<`DB`, `TB`, `Reference`>>

***

<a id="api-format" />

### format() [#format]

#### Call Signature [#call-signature]

```ts
format<Reference>(field): FormatFunctionBuilder<FormatOutput<DB, TB, Reference>>;
```

Builds a Salesforce `FORMAT(...)` expression.

##### Type Parameters [#type-parameters-2]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

##### Parameters [#parameters-1]

| Parameter | Type                                                                                                                                   |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`FormattableFieldReference`](/docs/core/reference/api/type-aliases/FormattableFieldReference)\<`DB`, `TB`, `Reference`> |

##### Returns [#returns-1]

[`FormatFunctionBuilder`](/docs/core/reference/api/interfaces/FormatFunctionBuilder)\<`FormatOutput`\<`DB`, `TB`, `Reference`>>

#### Call Signature [#call-signature-1]

```ts
format<Output>(expression): FormatFunctionBuilder<NestedFormatOutput<Output>>;
```

Builds a Salesforce `FORMAT(...)` expression.

##### Type Parameters [#type-parameters-3]

| Type Parameter |
| -------------- |
| `Output`       |

##### Parameters [#parameters-2]

| Parameter    | Type                                                                                                              |
| ------------ | ----------------------------------------------------------------------------------------------------------------- |
| `expression` | [`ConvertCurrencyFunctionBuilder`](/docs/core/reference/api/interfaces/ConvertCurrencyFunctionBuilder)\<`Output`> |

##### Returns [#returns-2]

[`FormatFunctionBuilder`](/docs/core/reference/api/interfaces/FormatFunctionBuilder)\<`NestedFormatOutput`\<`Output`>>

#### Call Signature [#call-signature-2]

```ts
format<Output, ComparisonValue, Operator>(expression): AggregateFormatFunctionBuilder<NestedFormatOutput<Output>>;
```

Builds a Salesforce `FORMAT(...)` expression.

##### Type Parameters [#type-parameters-4]

| Type Parameter                                                                                        |
| ----------------------------------------------------------------------------------------------------- |
| `Output`                                                                                              |
| `ComparisonValue`                                                                                     |
| `Operator` *extends* [`ComparisonOperator`](/docs/core/reference/api/type-aliases/ComparisonOperator) |

##### Parameters [#parameters-3]

| Parameter    | Type                                                                            |
| ------------ | ------------------------------------------------------------------------------- |
| `expression` | `FormattableAggregateFunctionBuilder`\<`Output`, `ComparisonValue`, `Operator`> |

##### Returns [#returns-3]

[`AggregateFormatFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFormatFunctionBuilder)\<`NestedFormatOutput`\<`Output`>>

***

<a id="api-tolabel" />

### toLabel() [#tolabel]

```ts
toLabel<Reference>(field): ToLabelFunctionBuilder<ToLabelOutput<DB, TB, Reference>>;
```

Builds a Salesforce `toLabel(...)` expression.

#### Type Parameters [#type-parameters-5]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-4]

| Parameter | Type                                                                                                                                     |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`TranslatableFieldReference`](/docs/core/reference/api/type-aliases/TranslatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-4]

[`ToLabelFunctionBuilder`](/docs/core/reference/api/interfaces/ToLabelFunctionBuilder)\<`ToLabelOutput`\<`DB`, `TB`, `Reference`>>

***

<a id="api-calendarmonth" />

### calendarMonth() [#calendarmonth]

```ts
calendarMonth<Input>(field): NumericDateFunctionBuilder<DB, TB, "calendarMonth", Input>;
```

Builds `CALENDAR_MONTH(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-6]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-5]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-5]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"calendarMonth"`, `Input`>

#### Inherited from [#inherited-from]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`calendarMonth`](/docs/core/reference/api/interfaces/AggregateFunctionModule#calendarmonth)

***

<a id="api-calendarquarter" />

### calendarQuarter() [#calendarquarter]

```ts
calendarQuarter<Input>(field): NumericDateFunctionBuilder<DB, TB, "calendarQuarter", Input>;
```

Builds `CALENDAR_QUARTER(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-7]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-6]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-6]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"calendarQuarter"`, `Input`>

#### Inherited from [#inherited-from-1]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`calendarQuarter`](/docs/core/reference/api/interfaces/AggregateFunctionModule#calendarquarter)

***

<a id="api-calendaryear" />

### calendarYear() [#calendaryear]

```ts
calendarYear<Input>(field): NumericDateFunctionBuilder<DB, TB, "calendarYear", Input>;
```

Builds `CALENDAR_YEAR(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-8]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-7]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-7]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"calendarYear"`, `Input`>

#### Inherited from [#inherited-from-2]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`calendarYear`](/docs/core/reference/api/interfaces/AggregateFunctionModule#calendaryear)

***

<a id="api-dayinmonth" />

### dayInMonth() [#dayinmonth]

```ts
dayInMonth<Input>(field): NumericDateFunctionBuilder<DB, TB, "dayInMonth", Input>;
```

Builds `DAY_IN_MONTH(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-9]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-8]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-8]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"dayInMonth"`, `Input`>

#### Inherited from [#inherited-from-3]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`dayInMonth`](/docs/core/reference/api/interfaces/AggregateFunctionModule#dayinmonth)

***

<a id="api-dayinweek" />

### dayInWeek() [#dayinweek]

```ts
dayInWeek<Input>(field): NumericDateFunctionBuilder<DB, TB, "dayInWeek", Input>;
```

Builds `DAY_IN_WEEK(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-10]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-9]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-9]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"dayInWeek"`, `Input`>

#### Inherited from [#inherited-from-4]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`dayInWeek`](/docs/core/reference/api/interfaces/AggregateFunctionModule#dayinweek)

***

<a id="api-dayinyear" />

### dayInYear() [#dayinyear]

```ts
dayInYear<Input>(field): NumericDateFunctionBuilder<DB, TB, "dayInYear", Input>;
```

Builds `DAY_IN_YEAR(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-11]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-10]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-10]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"dayInYear"`, `Input`>

#### Inherited from [#inherited-from-5]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`dayInYear`](/docs/core/reference/api/interfaces/AggregateFunctionModule#dayinyear)

***

<a id="api-dayonly" />

### dayOnly() [#dayonly]

```ts
dayOnly<Input>(field): DayOnlyFunctionBuilder<DB, TB, Input>;
```

Builds `DAY_ONLY(...)` for a datetime field.

#### Type Parameters [#type-parameters-12]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-11]

| Parameter | Type                                                                 |
| --------- | -------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `"datetime"`> |

#### Returns [#returns-11]

`DayOnlyFunctionBuilder`\<`DB`, `TB`, `Input`>

#### Inherited from [#inherited-from-6]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`dayOnly`](/docs/core/reference/api/interfaces/AggregateFunctionModule#dayonly)

***

<a id="api-fiscalmonth" />

### fiscalMonth() [#fiscalmonth]

```ts
fiscalMonth<Input>(field): NumericDateFunctionBuilder<DB, TB, "fiscalMonth", Input>;
```

Builds `FISCAL_MONTH(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-13]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-12]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-12]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"fiscalMonth"`, `Input`>

#### Inherited from [#inherited-from-7]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`fiscalMonth`](/docs/core/reference/api/interfaces/AggregateFunctionModule#fiscalmonth)

***

<a id="api-fiscalquarter" />

### fiscalQuarter() [#fiscalquarter]

```ts
fiscalQuarter<Input>(field): NumericDateFunctionBuilder<DB, TB, "fiscalQuarter", Input>;
```

Builds `FISCAL_QUARTER(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-14]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-13]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-13]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"fiscalQuarter"`, `Input`>

#### Inherited from [#inherited-from-8]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`fiscalQuarter`](/docs/core/reference/api/interfaces/AggregateFunctionModule#fiscalquarter)

***

<a id="api-fiscalyear" />

### fiscalYear() [#fiscalyear]

```ts
fiscalYear<Input>(field): NumericDateFunctionBuilder<DB, TB, "fiscalYear", Input>;
```

Builds `FISCAL_YEAR(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-15]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-14]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-14]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"fiscalYear"`, `Input`>

#### Inherited from [#inherited-from-9]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`fiscalYear`](/docs/core/reference/api/interfaces/AggregateFunctionModule#fiscalyear)

***

<a id="api-hourinday" />

### hourInDay() [#hourinday]

```ts
hourInDay<Input>(field): NumericDateFunctionBuilder<DB, TB, "hourInDay", Input>;
```

Builds `HOUR_IN_DAY(...)` for a datetime field.

#### Type Parameters [#type-parameters-16]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-15]

| Parameter | Type                                                                 |
| --------- | -------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `"datetime"`> |

#### Returns [#returns-15]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"hourInDay"`, `Input`>

#### Inherited from [#inherited-from-10]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`hourInDay`](/docs/core/reference/api/interfaces/AggregateFunctionModule#hourinday)

***

<a id="api-weekinmonth" />

### weekInMonth() [#weekinmonth]

```ts
weekInMonth<Input>(field): NumericDateFunctionBuilder<DB, TB, "weekInMonth", Input>;
```

Builds `WEEK_IN_MONTH(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-17]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-16]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-16]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"weekInMonth"`, `Input`>

#### Inherited from [#inherited-from-11]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`weekInMonth`](/docs/core/reference/api/interfaces/AggregateFunctionModule#weekinmonth)

***

<a id="api-weekinyear" />

### weekInYear() [#weekinyear]

```ts
weekInYear<Input>(field): NumericDateFunctionBuilder<DB, TB, "weekInYear", Input>;
```

Builds `WEEK_IN_YEAR(...)` for a date or datetime field.

#### Type Parameters [#type-parameters-18]

| Type Parameter                        |
| ------------------------------------- |
| `Input` *extends* `DateFunctionInput` |

#### Parameters [#parameters-17]

| Parameter | Type                                                                             |
| --------- | -------------------------------------------------------------------------------- |
| `field`   | `Input` & `DateFunctionArgument`\<`DB`, `TB`, `Input`, `TemporalSalesforceType`> |

#### Returns [#returns-17]

`NumericDateFunctionBuilder`\<`DB`, `TB`, `"weekInYear"`, `Input`>

#### Inherited from [#inherited-from-12]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`weekInYear`](/docs/core/reference/api/interfaces/AggregateFunctionModule#weekinyear)

***

<a id="api-converttimezone" />

### convertTimezone() [#converttimezone]

```ts
convertTimezone<Reference>(field): ConvertTimezoneFunctionBuilder<Reference>;
```

Builds a Salesforce `convertTimezone(...)` expression.

#### Type Parameters [#type-parameters-19]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-18]

| Parameter | Type                                                                                                                                                     |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`DateGroupableFieldReference`](/docs/core/reference/api/type-aliases/DateGroupableFieldReference)\<`DB`, `TB`, `Reference`, `"datetime"`> |

#### Returns [#returns-18]

[`ConvertTimezoneFunctionBuilder`](/docs/core/reference/api/interfaces/ConvertTimezoneFunctionBuilder)\<`Reference`>

#### Inherited from [#inherited-from-13]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`convertTimezone`](/docs/core/reference/api/interfaces/AggregateFunctionModule#converttimezone)

***

<a id="api-grouping" />

### grouping() [#grouping]

```ts
grouping<Reference>(field): GroupingFunctionBuilder;
```

Builds a Salesforce `GROUPING(...)` aggregate expression.

#### Type Parameters [#type-parameters-20]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-19]

| Parameter | Type                                                                               |
| --------- | ---------------------------------------------------------------------------------- |
| `field`   | `Reference` & `GroupingFieldReference`\<`DB`, `TB`, `GroupingFields`, `Reference`> |

#### Returns [#returns-19]

[`GroupingFunctionBuilder`](/docs/core/reference/api/interfaces/GroupingFunctionBuilder)

#### Inherited from [#inherited-from-14]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`grouping`](/docs/core/reference/api/interfaces/AggregateFunctionModule#grouping)

***

<a id="api-count" />

### count() [#count]

#### Call Signature [#call-signature-3]

```ts
count(): CountAllFunctionBuilder;
```

Builds a Salesforce `COUNT` aggregate expression.

##### Returns [#returns-20]

[`CountAllFunctionBuilder`](/docs/core/reference/api/interfaces/CountAllFunctionBuilder)

##### Inherited from [#inherited-from-15]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`count`](/docs/core/reference/api/interfaces/AggregateFunctionModule#count)

#### Call Signature [#call-signature-4]

```ts
count<Reference>(field): AggregateFunctionBuilder<number, number, NumericAggregateOperator>;
```

Builds a Salesforce `COUNT` aggregate expression.

##### Type Parameters [#type-parameters-21]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

##### Parameters [#parameters-20]

| Parameter | Type                                                                                                                                     |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`AggregatableFieldReference`](/docs/core/reference/api/type-aliases/AggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

##### Returns [#returns-21]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`number`, `number`, `NumericAggregateOperator`>

##### Inherited from [#inherited-from-16]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`count`](/docs/core/reference/api/interfaces/AggregateFunctionModule#count)

***

<a id="api-countdistinct" />

### countDistinct() [#countdistinct]

```ts
countDistinct<Reference>(field): AggregateFunctionBuilder<number, number, NumericAggregateOperator>;
```

Builds a Salesforce `COUNT_DISTINCT(...)` expression.

#### Type Parameters [#type-parameters-22]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-21]

| Parameter | Type                                                                                                                                     |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`AggregatableFieldReference`](/docs/core/reference/api/type-aliases/AggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-22]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`number`, `number`, `NumericAggregateOperator`>

#### Inherited from [#inherited-from-17]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`countDistinct`](/docs/core/reference/api/interfaces/AggregateFunctionModule#countdistinct)

***

<a id="api-avg" />

### avg() [#avg]

```ts
avg<Reference>(field): AggregateFunctionBuilder<number | null, number | null, NumericAggregateOperator>;
```

Builds a Salesforce `AVG(...)` aggregate expression.

#### Type Parameters [#type-parameters-23]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-22]

| Parameter | Type                                                                                                                                                   |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `field`   | `Reference` & [`NumericAggregatableFieldReference`](/docs/core/reference/api/type-aliases/NumericAggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-23]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`number` | `null`, `number` | `null`, `NumericAggregateOperator`>

#### Inherited from [#inherited-from-18]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`avg`](/docs/core/reference/api/interfaces/AggregateFunctionModule#avg)

***

<a id="api-max" />

### max() [#max]

```ts
max<Reference>(field): AggregateFunctionBuilder<AggregateFieldValue<DB, TB, Reference>, SalesforceFieldFilterValue<FieldReferenceDefinition<DB, TB, Reference, readonly []>>, ComparisonOperatorExpression<DB, TB, Reference>>;
```

Builds a Salesforce `MAX(...)` aggregate expression.

#### Type Parameters [#type-parameters-24]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-23]

| Parameter | Type                                                                                                                                     |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`AggregatableFieldReference`](/docs/core/reference/api/type-aliases/AggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-24]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`AggregateFieldValue`\<`DB`, `TB`, `Reference`>, [`SalesforceFieldFilterValue`](/docs/core/reference/api/type-aliases/SalesforceFieldFilterValue)\<`FieldReferenceDefinition`\<`DB`, `TB`, `Reference`, readonly \[]>>, `ComparisonOperatorExpression`\<`DB`, `TB`, `Reference`>>

#### Inherited from [#inherited-from-19]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`max`](/docs/core/reference/api/interfaces/AggregateFunctionModule#max)

***

<a id="api-min" />

### min() [#min]

```ts
min<Reference>(field): AggregateFunctionBuilder<AggregateFieldValue<DB, TB, Reference>, SalesforceFieldFilterValue<FieldReferenceDefinition<DB, TB, Reference, readonly []>>, ComparisonOperatorExpression<DB, TB, Reference>>;
```

Builds a Salesforce `MIN(...)` aggregate expression.

#### Type Parameters [#type-parameters-25]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-24]

| Parameter | Type                                                                                                                                     |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `field`   | `Reference` & [`AggregatableFieldReference`](/docs/core/reference/api/type-aliases/AggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-25]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`AggregateFieldValue`\<`DB`, `TB`, `Reference`>, [`SalesforceFieldFilterValue`](/docs/core/reference/api/type-aliases/SalesforceFieldFilterValue)\<`FieldReferenceDefinition`\<`DB`, `TB`, `Reference`, readonly \[]>>, `ComparisonOperatorExpression`\<`DB`, `TB`, `Reference`>>

#### Inherited from [#inherited-from-20]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`min`](/docs/core/reference/api/interfaces/AggregateFunctionModule#min)

***

<a id="api-sum" />

### sum() [#sum]

```ts
sum<Reference>(field): AggregateFunctionBuilder<number | null, number | null, NumericAggregateOperator>;
```

Builds a Salesforce `SUM(...)` aggregate expression.

#### Type Parameters [#type-parameters-26]

| Type Parameter                 |
| ------------------------------ |
| `Reference` *extends* `string` |

#### Parameters [#parameters-25]

| Parameter | Type                                                                                                                                                   |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `field`   | `Reference` & [`NumericAggregatableFieldReference`](/docs/core/reference/api/type-aliases/NumericAggregatableFieldReference)\<`DB`, `TB`, `Reference`> |

#### Returns [#returns-26]

[`AggregateFunctionBuilder`](/docs/core/reference/api/interfaces/AggregateFunctionBuilder)\<`number` | `null`, `number` | `null`, `NumericAggregateOperator`>

#### Inherited from [#inherited-from-21]

[`AggregateFunctionModule`](/docs/core/reference/api/interfaces/AggregateFunctionModule).[`sum`](/docs/core/reference/api/interfaces/AggregateFunctionModule#sum)

***

<a id="api-geolocation" />

### geolocation() [#geolocation]

```ts
geolocation(latitude, longitude): GeolocationFunctionBuilder;
```

Builds a Salesforce `GEOLOCATION(latitude, longitude)` expression.

#### Parameters [#parameters-26]

| Parameter   | Type     |
| ----------- | -------- |
| `latitude`  | `number` |
| `longitude` | `number` |

#### Returns [#returns-27]

[`GeolocationFunctionBuilder`](/docs/core/reference/api/interfaces/GeolocationFunctionBuilder)

#### Inherited from [#inherited-from-22]

[`GeolocationFunctionModule`](/docs/core/reference/api/interfaces/GeolocationFunctionModule).[`geolocation`](/docs/core/reference/api/interfaces/GeolocationFunctionModule#geolocation)

***

<a id="api-distance" />

### distance() [#distance]

#### Call Signature [#call-signature-5]

```ts
distance<First>(
   location,
   destination,
   unit
): DistanceFunctionBuilder<DistanceLiteralOutput<DB, TB, First>, ReferenceFilterable<DB, TB, First>, ReferenceSortable<DB, TB, First>>;
```

Builds a typed Salesforce `DISTANCE(...)` expression.

##### Type Parameters [#type-parameters-27]

| Type Parameter             |
| -------------------------- |
| `First` *extends* `string` |

##### Parameters [#parameters-27]

| Parameter     | Type                                                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `location`    | `First` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `First`> |
| `destination` | [`GeolocationFunctionBuilder`](/docs/core/reference/api/interfaces/GeolocationFunctionBuilder)                           |
| `unit`        | [`DistanceUnit`](/docs/core/reference/api/type-aliases/DistanceUnit)                                                     |

##### Returns [#returns-28]

[`DistanceFunctionBuilder`](/docs/core/reference/api/interfaces/DistanceFunctionBuilder)\<`DistanceLiteralOutput`\<`DB`, `TB`, `First`>, `ReferenceFilterable`\<`DB`, `TB`, `First`>, `ReferenceSortable`\<`DB`, `TB`, `First`>>

##### Inherited from [#inherited-from-23]

[`GeolocationFunctionModule`](/docs/core/reference/api/interfaces/GeolocationFunctionModule).[`distance`](/docs/core/reference/api/interfaces/GeolocationFunctionModule#distance)

#### Call Signature [#call-signature-6]

```ts
distance<First, Second>(
   location,
   destination,
   unit
): DistanceFunctionBuilder<DistanceFieldOutput<DB, TB, First, Second>, BothTrue<ReferenceFilterable<DB, TB, First>, ReferenceFilterable<DB, TB, Second>>, BothTrue<ReferenceSortable<DB, TB, First>, ReferenceSortable<DB, TB, Second>>>;
```

Builds a typed Salesforce `DISTANCE(...)` expression.

##### Type Parameters [#type-parameters-28]

| Type Parameter              |
| --------------------------- |
| `First` *extends* `string`  |
| `Second` *extends* `string` |

##### Parameters [#parameters-28]

| Parameter     | Type                                                                                                                       |
| ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `location`    | `First` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `First`>   |
| `destination` | `Second` & [`LocationFieldReference`](/docs/core/reference/api/type-aliases/LocationFieldReference)\<`DB`, `TB`, `Second`> |
| `unit`        | [`DistanceUnit`](/docs/core/reference/api/type-aliases/DistanceUnit)                                                       |

##### Returns [#returns-29]

[`DistanceFunctionBuilder`](/docs/core/reference/api/interfaces/DistanceFunctionBuilder)\<`DistanceFieldOutput`\<`DB`, `TB`, `First`, `Second`>, `BothTrue`\<`ReferenceFilterable`\<`DB`, `TB`, `First`>, `ReferenceFilterable`\<`DB`, `TB`, `Second`>>, `BothTrue`\<`ReferenceSortable`\<`DB`, `TB`, `First`>, `ReferenceSortable`\<`DB`, `TB`, `Second`>>>

##### Inherited from [#inherited-from-24]

[`GeolocationFunctionModule`](/docs/core/reference/api/interfaces/GeolocationFunctionModule).[`distance`](/docs/core/reference/api/interfaces/GeolocationFunctionModule#distance)
