mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-06 07:32:27 +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
72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
---
|
|
|
|
# LIMITAR POR Cláusula {#limit-by-clause}
|
|
|
|
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](../../syntax.md#syntax-expressions).
|
|
|
|
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](order-by.md) 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](limit.md). Ambos se pueden usar en la misma consulta.
|
|
|
|
## Ejemplos {#examples}
|
|
|
|
Tabla de muestra:
|
|
|
|
``` sql
|
|
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:
|
|
|
|
``` sql
|
|
SELECT * FROM limit_by ORDER BY id, val LIMIT 2 BY id
|
|
```
|
|
|
|
``` text
|
|
┌─id─┬─val─┐
|
|
│ 1 │ 10 │
|
|
│ 1 │ 11 │
|
|
│ 2 │ 20 │
|
|
│ 2 │ 21 │
|
|
└────┴─────┘
|
|
```
|
|
|
|
``` sql
|
|
SELECT * FROM limit_by ORDER BY id, val LIMIT 1, 2 BY id
|
|
```
|
|
|
|
``` text
|
|
┌─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`).
|
|
|
|
``` sql
|
|
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
|
|
```
|