mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-17 14:00:51 +00:00
![Ivan Blinkov](/assets/img/avatar_default.png)
* 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
45 lines
3.1 KiB
Markdown
45 lines
3.1 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
---
|
|
|
|
# Cláusula FROM {#select-from}
|
|
|
|
El `FROM` cláusula especifica la fuente de la que se leen los datos:
|
|
|
|
- [Tabla](../../../engines/table-engines/index.md)
|
|
- [Subconsultas](index.md) {## TODO: mejor enlace ##}
|
|
- [Función de la tabla](../../table-functions/index.md#table-functions)
|
|
|
|
[JOIN](join.md) y [ARRAY JOIN](array-join.md) también pueden utilizarse para ampliar la funcionalidad del `FROM` clausula.
|
|
|
|
La subconsulta es otra `SELECT` consulta que se puede especificar entre paréntesis dentro `FROM` clausula.
|
|
|
|
`FROM` cláusula puede contener múltiples fuentes de datos, separadas por comas, que es equivalente a realizar [CROSS JOIN](join.md) en ellos.
|
|
|
|
## Modificador FINAL {#select-from-final}
|
|
|
|
Cuando `FINAL` se especifica, ClickHouse fusiona completamente los datos antes de devolver el resultado y, por lo tanto, realiza todas las transformaciones de datos que ocurren durante las fusiones para el motor de tabla dado.
|
|
|
|
Es aplicable cuando se seleccionan datos de tablas que utilizan [Método de codificación de datos:](../../../engines/table-engines/mergetree-family/mergetree.md)- familia del motor (excepto `GraphiteMergeTree`). También soportado para:
|
|
|
|
- [Replicado](../../../engines/table-engines/mergetree-family/replication.md) versiones de `MergeTree` motor.
|
|
- [Vista](../../../engines/table-engines/special/view.md), [Búfer](../../../engines/table-engines/special/buffer.md), [Distribuido](../../../engines/table-engines/special/distributed.md), y [Método de codificación de datos:](../../../engines/table-engines/special/materializedview.md) motores que funcionan sobre otros motores, siempre que se hayan creado sobre `MergeTree`-mesas de motor.
|
|
|
|
### Inconveniente {#drawbacks}
|
|
|
|
Consultas que usan `FINAL` se ejecutan no tan rápido como consultas similares que no lo hacen, porque:
|
|
|
|
- La consulta se ejecuta en un solo subproceso y los datos se combinan durante la ejecución de la consulta.
|
|
- Consultas con `FINAL` leer columnas de clave primaria además de las columnas especificadas en la consulta.
|
|
|
|
**En la mayoría de los casos, evite usar `FINAL`.** El enfoque común es utilizar diferentes consultas que asumen los procesos en segundo plano de la `MergeTree` el motor aún no ha sucedido y tratar con él mediante la aplicación de agregación (por ejemplo, para descartar duplicados). {## TODO: ejemplos ##}
|
|
|
|
## Detalles de implementación {#implementation-details}
|
|
|
|
Si el `FROM` se omite la cláusula, los datos se leerán desde el `system.one` tabla.
|
|
El `system.one` table contiene exactamente una fila (esta tabla cumple el mismo propósito que la tabla DUAL que se encuentra en otros DBMS).
|
|
|
|
Para ejecutar una consulta, todas las columnas enumeradas en la consulta se extraen de la tabla adecuada. Las columnas no necesarias para la consulta externa se eliminan de las subconsultas.
|
|
Si una consulta no muestra ninguna columnas (por ejemplo, `SELECT count() FROM t`), alguna columna se extrae de la tabla de todos modos (se prefiere la más pequeña), para calcular el número de filas.
|