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



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

Type-safe builder for Salesforce COUNT() queries.

## Type Parameters [#type-parameters]

| Type Parameter            |
| ------------------------- |
| `DB`                      |
| `TB` *extends* keyof `DB` |

## Methods [#methods]

<a id="api-call" />

### $call() [#call]

```ts
$call<T>(func): T;
```

Passes this builder to `func` and returns the callback result.

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

| Type Parameter |
| -------------- |
| `T`            |

#### Parameters [#parameters]

| Parameter | Type          |
| --------- | ------------- |
| `func`    | (`qb`) => `T` |

#### Returns [#returns]

`T`

***

<a id="api-if" />

### $if() [#if]

```ts
$if(condition, func): this;
```

Conditionally applies a builder callback; when false, the runtime query is unchanged.

#### Parameters [#parameters-1]

| Parameter   | Type             |
| ----------- | ---------------- |
| `condition` | `boolean`        |
| `func`      | (`qb`) => `this` |

#### Returns [#returns-1]

`this`

***

<a id="api-clearlimit" />

### clearLimit() [#clearlimit]

```ts
clearLimit(): CountQueryBuilder<DB, TB>;
```

Returns a builder with the `LIMIT` clause removed.

#### Returns [#returns-2]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-clearwhere" />

### clearWhere() [#clearwhere]

```ts
clearWhere(): CountQueryBuilder<DB, TB>;
```

Returns a builder with the `WHERE` predicate removed.

#### Returns [#returns-3]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-compile" />

### compile() [#compile]

```ts
compile(): CompiledQuery<number>;
```

Compiles the current operation tree into a `CompiledQuery`.

#### Returns [#returns-4]

[`CompiledQuery`](/docs/core/reference/api/interfaces/CompiledQuery)\<`number`>

***

<a id="api-execute" />

### execute() [#execute]

```ts
execute(options?): Promise<number>;
```

Compiles and executes the query with the configured executor.

#### Parameters [#parameters-2]

| Parameter  | Type                                                                                 |
| ---------- | ------------------------------------------------------------------------------------ |
| `options?` | [`AbortableQueryOptions`](/docs/core/reference/api/interfaces/AbortableQueryOptions) |

#### Returns [#returns-5]

`Promise`\<`number`>

***

<a id="api-executeall" />

### executeAll() [#executeall]

```ts
executeAll(options?): Promise<number>;
```

Executes with the executor's Salesforce query-all semantics.

#### Parameters [#parameters-3]

| Parameter  | Type                                                                                 |
| ---------- | ------------------------------------------------------------------------------------ |
| `options?` | [`AbortableQueryOptions`](/docs/core/reference/api/interfaces/AbortableQueryOptions) |

#### Returns [#returns-6]

`Promise`\<`number`>

***

<a id="api-apex" />

### apex() [#apex]

```ts
apex(): ApexCountQueryBuilder<DB, TB, "static">;
```

Switches to the static Apex builder for the current query.

#### Returns [#returns-7]

[`ApexCountQueryBuilder`](/docs/core/reference/api/interfaces/ApexCountQueryBuilder)\<`DB`, `TB`, `"static"`>

***

<a id="api-dynamicapex" />

### dynamicApex() [#dynamicapex]

```ts
dynamicApex(): ApexCountQueryBuilder<DB, TB, "dynamic">;
```

Switches to the dynamic Apex builder for the current query.

#### Returns [#returns-8]

[`ApexCountQueryBuilder`](/docs/core/reference/api/interfaces/ApexCountQueryBuilder)\<`DB`, `TB`, `"dynamic"`>

***

<a id="api-limit" />

### limit() [#limit]

```ts
limit(limit): CountQueryBuilder<DB, TB>;
```

Adds or replaces the SOQL `LIMIT` clause.

#### Parameters [#parameters-4]

| Parameter | Type     |
| --------- | -------- |
| `limit`   | `number` |

#### Returns [#returns-9]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-forview" />

### forView() [#forview]

```ts
forView(..._mruCheck): CountQueryBuilder<DB, TB>;
```

Adds `FOR VIEW`; available only for MRU-enabled objects.

#### Parameters [#parameters-5]

| Parameter      | Type                                                                                                                                                                  |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ...`_mruCheck` | [`SalesforceObjectMruEnabled`](/docs/core/reference/api/type-aliases/SalesforceObjectMruEnabled)\<`DB`\[`TB`]> *extends* `false` ? readonly \[`never`] : readonly \[] |

#### Returns [#returns-10]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-forreference" />

### forReference() [#forreference]

```ts
forReference(..._mruCheck): CountQueryBuilder<DB, TB>;
```

Adds `FOR REFERENCE`; available only for MRU-enabled objects.

#### Parameters [#parameters-6]

| Parameter      | Type                                                                                                                                                                  |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ...`_mruCheck` | [`SalesforceObjectMruEnabled`](/docs/core/reference/api/type-aliases/SalesforceObjectMruEnabled)\<`DB`\[`TB`]> *extends* `false` ? readonly \[`never`] : readonly \[] |

#### Returns [#returns-11]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-updatetracking" />

### updateTracking() [#updatetracking]

```ts
updateTracking(..._knowledgeArticleCheck): CountQueryBuilder<DB, TB>;
```

Adds the KnowledgeArticle `UPDATE TRACKING` clause.

#### Parameters [#parameters-7]

| Parameter                   | Type                                 |
| --------------------------- | ------------------------------------ |
| ...`_knowledgeArticleCheck` | `KnowledgeArticleUpdateCheck`\<`TB`> |

#### Returns [#returns-12]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-updateviewstat" />

### updateViewstat() [#updateviewstat]

```ts
updateViewstat(..._knowledgeArticleCheck): CountQueryBuilder<DB, TB>;
```

Adds the KnowledgeArticle `UPDATE VIEWSTAT` clause.

#### Parameters [#parameters-8]

| Parameter                   | Type                                 |
| --------------------------- | ------------------------------------ |
| ...`_knowledgeArticleCheck` | `KnowledgeArticleUpdateCheck`\<`TB`> |

#### Returns [#returns-13]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-usingscope" />

### usingScope() [#usingscope]

```ts
usingScope(scope): CountQueryBuilder<DB, TB>;
```

Adds a Salesforce `USING SCOPE` clause validated against schema metadata.

#### Parameters [#parameters-9]

| Parameter | Type                                                                                                                   |
| --------- | ---------------------------------------------------------------------------------------------------------------------- |
| `scope`   | [`SalesforceObjectSupportedScope`](/docs/core/reference/api/type-aliases/SalesforceObjectSupportedScope)\<`DB`\[`TB`]> |

#### Returns [#returns-14]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-withuserid" />

### withUserId() [#withuserid]

```ts
withUserId(userId, ..._userProfileFeedCheck): CountQueryBuilder<DB, TB>;
```

Adds the UserProfileFeed `WITH USER_ID` clause.

#### Parameters [#parameters-10]

| Parameter                  | Type                                    |
| -------------------------- | --------------------------------------- |
| `userId`                   | `string`                                |
| ...`_userProfileFeedCheck` | `UserProfileFeedWithUserIdCheck`\<`TB`> |

#### Returns [#returns-15]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-withrecordvisibilitycontext" />

### withRecordVisibilityContext() [#withrecordvisibilitycontext]

```ts
withRecordVisibilityContext(parameters): CountQueryBuilder<DB, TB>;
```

Adds `WITH RECORD_VISIBILITY_CONTEXT` options.

#### Parameters [#parameters-11]

| Parameter    | Type                                                                                                     |
| ------------ | -------------------------------------------------------------------------------------------------------- |
| `parameters` | [`RecordVisibilityContextOptions`](/docs/core/reference/api/type-aliases/RecordVisibilityContextOptions) |

#### Returns [#returns-16]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-setoptions" />

### setOptions() [#setoptions]

```ts
setOptions(options): CountQueryBuilder<DB, TB>;
```

Adds object-specific Salesforce `SET OPTIONS` values.

#### Parameters [#parameters-12]

| Parameter | Type                                                                                                                 |
| --------- | -------------------------------------------------------------------------------------------------------------------- |
| `options` | [`Data360AggregateSetOptionsFor`](/docs/core/reference/api/type-aliases/Data360AggregateSetOptionsFor)\<`DB`\[`TB`]> |

#### Returns [#returns-17]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-withdatacategory" />

### withDataCategory() [#withdatacategory]

```ts
withDataCategory<Group>(
   group,
   selector,
   categories
): CountQueryBuilder<DB, TB>;
```

Adds a typed `WITH DATA CATEGORY` filter.

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

| Type Parameter            |
| ------------------------- |
| `Group` *extends* `never` |

#### Parameters [#parameters-13]

| Parameter    | Type                                                                                                                                                                                                         |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `group`      | `Group`                                                                                                                                                                                                      |
| `selector`   | [`DataCategorySelector`](/docs/core/reference/api/type-aliases/DataCategorySelector)                                                                                                                         |
| `categories` | [`DataCategoryInput`](/docs/core/reference/api/type-aliases/DataCategoryInput)\<[`SalesforceObjectDataCategory`](/docs/core/reference/api/type-aliases/SalesforceObjectDataCategory)\<`DB`\[`TB`], `Group`>> |

#### Returns [#returns-18]

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-where" />

### where() [#where]

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

```ts
where(expression): CountQueryBuilder<DB, TB>;
```

Adds a typed `WHERE` predicate and combines it with any existing predicate using `AND`.

##### Parameters [#parameters-14]

| Parameter    | Type                                                                   |
| ------------ | ---------------------------------------------------------------------- |
| `expression` | [`SoqlRawBuilder`](/docs/core/reference/api/interfaces/SoqlRawBuilder) |

##### Returns [#returns-19]

`CountQueryBuilder`\<`DB`, `TB`>

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

```ts
where(expression): CountQueryBuilder<DB, TB>;
```

Adds a typed `WHERE` predicate and combines it with any existing predicate using `AND`.

##### Parameters [#parameters-15]

| Parameter    | Type                                                                                                  |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| `expression` | [`WhereExpressionFactory`](/docs/core/reference/api/type-aliases/WhereExpressionFactory)\<`DB`, `TB`> |

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

`CountQueryBuilder`\<`DB`, `TB`>

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

```ts
where<RE, OP, RHS>(
   lhs,
   op,
   rhs
): CountQueryBuilder<DB, TB>;
```

Adds a typed `WHERE` predicate and combines it with any existing predicate using `AND`.

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

| Type Parameter                                                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `RE` *extends* `string`                                                                                                                                                                                                                                                           |
| `OP` *extends* \| `"="` \| `"!="` \| [`OrderedComparisonOperator`](/docs/core/reference/api/type-aliases/OrderedComparisonOperator) \| `"in"` \| `"not in"` \| [`MultiSelectComparisonOperator`](/docs/core/reference/api/type-aliases/MultiSelectComparisonOperator) \| `"like"` |
| `RHS`                                                                                                                                                                                                                                                                             |

##### Parameters [#parameters-16]

| Parameter | Type                                            |
| --------- | ----------------------------------------------- |
| `lhs`     | `RE` & `FilterableFieldName`\<`DB`, `TB`, `RE`> |
| `op`      | `OP`                                            |
| `rhs`     | `RHS`                                           |

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

`CountQueryBuilder`\<`DB`, `TB`>

***

<a id="api-tooperationnode" />

### toOperationNode() [#tooperationnode]

```ts
toOperationNode(): SelectQueryNode;
```

Returns the immutable operation node represented by this builder.

#### Returns [#returns-22]

[`SelectQueryNode`](/docs/core/reference/api/type-aliases/SelectQueryNode)
