> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Calcula el número aproximado de valores de argumento distintos.

# uniqCombined

<div id="uniqCombined">
  ## uniqCombined
</div>

Introducido en: v1.1.0

Calcula el número aproximado de valores de argumento distintos.
Proporciona el resultado de forma determinista (no depende del orden de procesamiento de la consulta).

<Note>
  Dado que utiliza un hash de 32 bits para los tipos que no son String, el resultado tendrá un error muy alto para cardinalidades significativamente mayores que `UINT_MAX` (el error aumentará rápidamente después de unas pocas decenas de miles de millones de valores distintos).
  Si las cardinalidades son mayores que `UINT_MAX`, debe usar [`uniqCombined64`](/es/reference/functions/aggregate-functions/uniqCombined64) en su lugar.
</Note>

En comparación con la función uniq, la función uniqCombined:

* Consume varias veces menos memoria
* Calcula con una precisión varias veces mayor
* Normalmente tiene un rendimiento ligeramente inferior. En algunos escenarios, uniqCombined puede rendir mejor que uniq; por ejemplo, con consultas distribuidas que transmiten una gran cantidad de estados de agregación por la red

<Accordion title="Detalles de implementación">
  Esta función calcula un hash (de 64 bits para String y de 32 bits en caso contrario) para todos los parámetros de la agregación y luego lo utiliza en los cálculos.
  Utiliza una combinación de tres algoritmos: array, tabla hash y HyperLogLog con una tabla de corrección de errores:

  * Para una pequeña cantidad de elementos distintos, se utiliza un array
  * Cuando el tamaño del conjunto es mayor, se utiliza una tabla hash
  * Para una cantidad mayor de elementos, se utiliza HyperLogLog, que ocupará una cantidad fija de memoria
</Accordion>

**Sintaxis**

```sql theme={null}
uniqCombined(HLL_precision)(x[, ...])
uniqCombined(x[, ...])
```

**Parámetros**

* `HLL_precision` — Opcional. El logaritmo en base 2 del número de celdas de HyperLogLog. El valor predeterminado es 17, lo que en la práctica equivale a 96 KiB de espacio (2^17 celdas, de 6 bits cada una). Rango: \[12, 20]. [`UInt8`](/es/reference/data-types/int-uint)

**Argumentos**

* `x` — Un número variable de parámetros. [`Tuple(T)`](/es/reference/data-types/tuple) o [`Array(T)`](/es/reference/data-types/array) o [`Date`](/es/reference/data-types/date) o [`DateTime`](/es/reference/data-types/datetime) o [`String`](/es/reference/data-types/string) o [`(U)Int*`](/es/reference/data-types/int-uint) o [`Float*`](/es/reference/data-types/float) o [`Decimal`](/es/reference/data-types/decimal)

**Valor devuelto**

Devuelve un número de tipo UInt64 que representa el número aproximado de distintos valores de argumento. [`UInt64`](/es/reference/data-types/int-uint)

**Ejemplos**

**Uso básico**

```sql title=Query theme={null}
SELECT uniqCombined(number) FROM numbers(1e6);
```

```response title=Response theme={null}
┌─uniqCombined(number)─┐
│              1001148 │
└──────────────────────┘
```

**Con precisión personalizada**

```sql title=Query theme={null}
SELECT uniqCombined(15)(number) FROM numbers(1e5);
```

```response title=Response theme={null}
┌─uniqCombined(15)(number)─┐
│                   100768 │
└──────────────────────────┘
```

**Véase también**

* [uniq](/es/reference/functions/aggregate-functions/uniq)
* [uniqCombined64](/es/reference/functions/aggregate-functions/uniqCombined64)
* [uniqHLL12](/es/reference/functions/aggregate-functions/uniqHLL12)
* [uniqExact](/es/reference/functions/aggregate-functions/uniqExact)
* [uniqTheta](/es/reference/functions/aggregate-functions/uniqthetasketch)
