Оператор LIMIT
LIMIT m позволяет выбрать первые m строк из результата.
LIMIT n, m позволяет выбрать m строк из результата после пропуска первых n строк. Синтаксис LIMIT m OFFSET n эквивалентен.
В стандартных формах выше n и m — неотрицательные целые числа.
Дополнительно поддерживаются отрицательные значения лимита:
LIMIT -m выбирает последние m строк из результата.
LIMIT -m OFFSET -n выбирает последние m строк после пропуска последних n строк. Синтаксис LIMIT -n, -m эквивалентен.
Также поддерживается выбор доли результата:
LIMIT m — если 0 < m < 1, то возвращаются первые m * 100% строк.
LIMIT m OFFSET n — если 0 < m < 1 и 0 < n < 1, то возвращаются первые m * 100% результата после пропуска первых n * 100% строк. Синтаксис LIMIT n, m эквивалентен.
Примеры:
• LIMIT 0.1 — выбирает первые 10% результата.
• LIMIT 1 OFFSET 0.5 — выбирает медианную строку.
• LIMIT 0.25 OFFSET 0.5 — выбирает третий квартиль результата.
Примечание • Доля должна быть числом типа Float64 меньше 1 и больше нуля. • Если в результате вычисления получается дробное количество строк, оно округляется вверх до ближайшего целого числа.
Примечание • Можно комбинировать стандартный LIMIT с дробным OFFSET и наоборот. • Можно комбинировать стандартный LIMIT с отрицательным OFFSET и наоборот.
Если оператор ORDER BY явно не сортирует результат, выбор строк в результирующем наборе может быть произвольным и недетерминированным.
:::note
Количество строк в результирующем наборе также может зависеть от настройки 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 соответственно.
Примечание
• В настоящее времяWITH TIESне поддерживается с отрицательным значениемLIMIT.
Этот модификатор также можно комбинировать с модификатором ORDER BY ... WITH FILL.
Например, следующий запрос
возвращает
но после применения модификатора WITH TIES
он возвращает другой набор строк
потому что строка 6 имеет то же значение "2" в поле n, что и строка 5