mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-18 20:32:43 +00:00
cd14f9ebcb
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
---
|
|
|
|
# Cláusula DISTINCT {#select-distinct}
|
|
|
|
Si `SELECT DISTINCT` se especifica, sólo las filas únicas permanecerán en un resultado de consulta. Por lo tanto, solo quedará una sola fila de todos los conjuntos de filas completamente coincidentes en el resultado.
|
|
|
|
## Procesamiento nulo {#null-processing}
|
|
|
|
`DISTINCT` trabaja con [NULL](../../syntax.md#null-literal) como si `NULL` Era un valor específico, y `NULL==NULL`. En otras palabras, en el `DISTINCT` resultados, diferentes combinaciones con `NULL` se producen sólo una vez. Se diferencia de `NULL` procesamiento en la mayoría de los otros contextos.
|
|
|
|
## Alternativa {#alternatives}
|
|
|
|
Es posible obtener el mismo resultado aplicando [GROUP BY](group-by.md) en el mismo conjunto de valores especificados como `SELECT` cláusula, sin utilizar ninguna función agregada. Pero hay pocas diferencias de `GROUP BY` enfoque:
|
|
|
|
- `DISTINCT` se puede aplicar junto con `GROUP BY`.
|
|
- Cuando [ORDER BY](order-by.md) se omite y [LIMIT](limit.md) se define, la consulta deja de ejecutarse inmediatamente después de que se haya leído el número requerido de filas diferentes.
|
|
- Los bloques de datos se generan a medida que se procesan, sin esperar a que finalice la ejecución de toda la consulta.
|
|
|
|
## Limitacion {#limitations}
|
|
|
|
`DISTINCT` no se admite si `SELECT` tiene al menos una columna de matriz.
|
|
|
|
## Ejemplos {#examples}
|
|
|
|
ClickHouse admite el uso de `DISTINCT` y `ORDER BY` para diferentes columnas en una consulta. El `DISTINCT` cláusula se ejecuta antes de `ORDER BY` clausula.
|
|
|
|
Tabla de ejemplo:
|
|
|
|
``` text
|
|
┌─a─┬─b─┐
|
|
│ 2 │ 1 │
|
|
│ 1 │ 2 │
|
|
│ 3 │ 3 │
|
|
│ 2 │ 4 │
|
|
└───┴───┘
|
|
```
|
|
|
|
Al seleccionar datos con el `SELECT DISTINCT a FROM t1 ORDER BY b ASC` consulta, obtenemos el siguiente resultado:
|
|
|
|
``` text
|
|
┌─a─┐
|
|
│ 2 │
|
|
│ 1 │
|
|
│ 3 │
|
|
└───┘
|
|
```
|
|
|
|
Si cambiamos la dirección de clasificación `SELECT DISTINCT a FROM t1 ORDER BY b DESC`, obtenemos el siguiente resultado:
|
|
|
|
``` text
|
|
┌─a─┐
|
|
│ 3 │
|
|
│ 1 │
|
|
│ 2 │
|
|
└───┘
|
|
```
|
|
|
|
Fila `2, 4` se cortó antes de clasificar.
|
|
|
|
Tenga en cuenta esta especificidad de implementación al programar consultas.
|