mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
add arrayPartialSort and arrayPartialReverseSort
This commit is contained in:
parent
bcf2252fe0
commit
9ca91e618a
@ -695,7 +695,11 @@ SELECT arraySort((x, y) -> -y, [0, 1, 2], [1, 2, 3]) as res;
|
||||
:::note "Примечание"
|
||||
Для улучшения эффективности сортировки применяется [преобразование Шварца](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A8%D0%B2%D0%B0%D1%80%D1%86%D0%B0).
|
||||
:::
|
||||
|
||||
|
||||
## arrayPartialSort(\[func,\] limit, arr, …) {#array_functions-sort}
|
||||
|
||||
То же, что и `arraySort` с дополнительным аргументом `limit`, позволяющем частичную сортировку. Возвращает массив того же размера, как и исходный, в котором элементы `[1..limit]` отсортированы в возрастающем порядке. Остальные элементы `(limit..N]` остаются в неспецифицированном порядке.
|
||||
|
||||
## arrayReverseSort(\[func,\] arr, …) {#array_functions-reverse-sort}
|
||||
|
||||
Возвращает массив `arr`, отсортированный в нисходящем порядке. Если указана функция `func`, то массив `arr` сначала сортируется в порядке, который определяется функцией `func`, а затем отсортированный массив переворачивается. Если функция `func` принимает несколько аргументов, то в функцию `arrayReverseSort` необходимо передавать несколько массивов, которые будут соответствовать аргументам функции `func`. Подробные примеры рассмотрены в конце описания функции `arrayReverseSort`.
|
||||
@ -797,6 +801,10 @@ SELECT arrayReverseSort((x, y) -> -y, [4, 3, 5], [1, 2, 3]) AS res;
|
||||
└─────────┘
|
||||
```
|
||||
|
||||
## arrayPartialReverseSort(\[func,\] limit, arr, …) {#array_functions-sort}
|
||||
|
||||
То же, что и `arrayReverseSort` с дополнительным аргументом `limit`, позволяющем частичную сортировку. Возвращает массив того же размера, как и исходный, в котором элементы `[1..limit]` отсортированы в убывающем порядке. Остальные элементы `(limit..N]` остаются в неспецифицированном порядке.
|
||||
|
||||
## arrayUniq(arr, …) {#array-functions-arrayuniq}
|
||||
|
||||
Если передан один аргумент, считает количество разных элементов в массиве.
|
||||
|
Loading…
Reference in New Issue
Block a user