ClickHouse/docs/ru/sql-reference/statements/select/limit.md
2022-08-26 13:37:11 -04:00

2.5 KiB
Raw Blame History

slug sidebar_label
/ru/sql-reference/statements/select/limit LIMIT

Секция LIMIT

LIMIT m позволяет выбрать из результата первые m строк.

LIMIT n, m позволяет выбрать из результата первые m строк после пропуска первых n строк. Синтаксис LIMIT m OFFSET n также поддерживается.

n и m должны быть неотрицательными целыми числами.

При отсутствии секции ORDER BY, однозначно сортирующей результат, результат может быть произвольным и может являться недетерминированным.

:::note "Примечание"
Количество возвращаемых строк может зависеть также от настройки [limit](../../../operations/settings/settings.md#limit).
:::

Модификатор LIMIT ... WITH TIES

Когда вы установите модификатор WITH TIES для LIMIT n[,m] и указываете ORDER BY expr_list, вы получите первые n или n,m строк и дополнительно все строки с теми же самым значениями полей указанных в ORDER BY равными строке на позиции n для LIMIT n или m для LIMIT n,m.

Этот модификатор также может быть скомбинирован с ORDER BY ... WITH FILL модификатором

Для примера следующий запрос:

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5

возвращает

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘

но после применения модификатора WITH TIES

SELECT * FROM (
    SELECT number%50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0,5 WITH TIES

возвращает другой набор строк

┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘

поскольку строка на позиции 6 имеет тоже самое значение "2" для поля n что и строка на позиции 5