* 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
2.5 KiB
machine_translated | machine_translated_rev |
---|---|
true | 72537a2d52 |
LIMITAR POR Cláusula
Una consulta con el LIMIT n BY expressions
cláusula selecciona la primera n
para cada valor distinto de expressions
. La clave para LIMIT BY
puede contener cualquier número de expresiones.
ClickHouse admite las siguientes variantes de sintaxis:
LIMIT [offset_value, ]n BY expressions
LIMIT n OFFSET offset_value BY expressions
Durante el procesamiento de consultas, ClickHouse selecciona los datos ordenados por clave de ordenación. La clave de ordenación se establece explícitamente utilizando un ORDER BY cláusula o implícitamente como una propiedad del motor de tablas. Entonces se aplica ClickHouse LIMIT n BY expressions
y devuelve la primera n
filas para cada combinación distinta de expressions
. Si OFFSET
se especifica, a continuación, para cada bloque de datos que pertenece a una combinación distinta de expressions
, ClickHouse salta offset_value
número de filas desde el principio del bloque y devuelve un máximo de n
filas como resultado. Si offset_value
es mayor que el número de filas en el bloque de datos, ClickHouse devuelve cero filas del bloque.
!!! note "Nota"
LIMIT BY
no está relacionado con LIMIT. Ambos se pueden usar en la misma consulta.
Ejemplos
Tabla de muestra:
CREATE TABLE limit_by(id Int, val Int) ENGINE = Memory;
INSERT INTO limit_by VALUES (1, 10), (1, 11), (1, 12), (2, 20), (2, 21);
Consulta:
SELECT * FROM limit_by ORDER BY id, val LIMIT 2 BY id
┌─id─┬─val─┐
│ 1 │ 10 │
│ 1 │ 11 │
│ 2 │ 20 │
│ 2 │ 21 │
└────┴─────┘
SELECT * FROM limit_by ORDER BY id, val LIMIT 1, 2 BY id
┌─id─┬─val─┐
│ 1 │ 11 │
│ 1 │ 12 │
│ 2 │ 21 │
└────┴─────┘
El SELECT * FROM limit_by ORDER BY id, val LIMIT 2 OFFSET 1 BY id
query devuelve el mismo resultado.
La siguiente consulta devuelve las 5 referencias principales para cada domain, device_type
par con un máximo de 100 filas en total (LIMIT n BY + LIMIT
).
SELECT
domainWithoutWWW(URL) AS domain,
domainWithoutWWW(REFERRER_URL) AS referrer,
device_type,
count() cnt
FROM hits
GROUP BY domain, referrer, device_type
ORDER BY cnt DESC
LIMIT 5 BY domain, device_type
LIMIT 100