ClickHouse/docs/es/sql-reference/statements/select/distinct.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* 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
2020-05-15 07:34:54 +03:00

2.2 KiB

machine_translated machine_translated_rev
true 72537a2d52

Cláusula 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

DISTINCT trabaja con NULL 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

Es posible obtener el mismo resultado aplicando GROUP BY 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 se omite y LIMIT 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

DISTINCT no se admite si SELECT tiene al menos una columna de matriz.

Ejemplos

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:

┌─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:

┌─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:

┌─a─┐
│ 3 │
│ 1 │
│ 2 │
└───┘

Fila 2, 4 se cortó antes de clasificar.

Tenga en cuenta esta especificidad de implementación al programar consultas.