From 774e255154f1779bc27a6671162b3ce2a02a0409 Mon Sep 17 00:00:00 2001 From: Denis Zhuravlev Date: Sat, 28 Sep 2019 03:39:25 -0300 Subject: [PATCH] Doc change. translation to Russian some array functions (#7139) --- .../functions/array_functions.md | 145 +++++++++++++++++- 1 file changed, 143 insertions(+), 2 deletions(-) diff --git a/docs/ru/query_language/functions/array_functions.md b/docs/ru/query_language/functions/array_functions.md index 19e3bb965c..680055fa81 100644 --- a/docs/ru/query_language/functions/array_functions.md +++ b/docs/ru/query_language/functions/array_functions.md @@ -647,15 +647,156 @@ SELECT arrayReverseSort((x, y) -> -y, [4, 3, 5], [1, 2, 3]) AS res; └─────────┘ ``` -## arrayUniq(arr, ...) +## arrayUniq(arr, ...) {#array_functions-arrayuniq} Если передан один аргумент, считает количество разных элементов в массиве. Если передано несколько аргументов, считает количество разных кортежей из элементов на соответствующих позициях в нескольких массивах. Если необходимо получить список уникальных элементов массива, можно воспользоваться arrayReduce('groupUniqArray', arr). -## arrayJoin(arr) +## arrayJoin(arr) {#array_functions-arrayjoin} Особенная функция. Смотрите раздел ["Функция arrayJoin"](array_join.md#functions_arrayjoin). +## arrayDifference(arr) {#array_functions-arraydifference} + +Принимает массив, возвращает массив разностей между соседними элементами. Первым элементом будет 0, вторым разность между вторым и первым элементами исходного массива, и т.д. +Результирующий массив имеет тип Array(Int64) для целых чисел и Array(Float64) для чисел с плавающей точкой. Другие типы, в том числе Decimal, не поддерживаются. + +Пример: + +```sql +SELECT arrayDifference([1, 2, 3, 4]) +``` + +```text +┌─arrayDifference([1, 2, 3, 4])─┐ +│ [0,1,1,1] │ +└───────────────────────────────┘ +``` + +Пример переполнения из-за результирующего типа Int64: + +```sql +SELECT arrayDifference([0, 10000000000000000000]) +``` + +```text +┌─arrayDifference([0, 10000000000000000000])─┐ +│ [0,-8446744073709551616] │ +└────────────────────────────────────────────┘ +``` + +## arrayDistinct(arr) {#array_functions-arraydistinct} + +Принимает массив, возвращает массив, содержащий уникальные элементы. + +Пример: + +```sql +SELECT arrayDistinct([1, 2, 2, 3, 1]) +``` + +```text +┌─arrayDistinct([1, 2, 2, 3, 1])─┐ +│ [1,2,3] │ +└────────────────────────────────┘ +``` + +## arrayEnumerateDense(arr) {#array_functions-arrayenumeratedense} + +Возвращает массив того же размера, что и исходный массив, с индексами исходного массива, указывающими, где каждый элемент впервые появляется в исходном массиве. + +Пример: + +```sql +SELECT arrayEnumerateDense([10, 20, 10, 30]) +``` + +```text +┌─arrayEnumerateDense([10, 20, 10, 30])─┐ +│ [1,2,1,3] │ +└───────────────────────────────────────┘ +``` + +## arrayIntersect(arr) {#array_functions-arrayintersect} + +Принимает несколько массивов, возвращает массив с элементами, присутствующими во всех исходных массивах. Элементы на выходе следуют в порядке следования в первом массиве. + +Пример: + +```sql +SELECT + arrayIntersect([1, 2], [1, 3], [2, 3]) AS no_intersect, + arrayIntersect([1, 2], [1, 3], [1, 4]) AS intersect +``` + +```text +┌─no_intersect─┬─intersect─┐ +│ [] │ [1] │ +└──────────────┴───────────┘ +``` + +## arrayReduce(agg_func, arr1, ...) {#array_functions-arrayreduce} + +Применяет агрегатную функцию к элементам массива и возвращает ее результат. Имя агрегирующей функции передается как строка в одинарных кавычках `'max'`, `'sum'`. При использовании параметрических агрегатных функций, параметр указывается после имени функции в круглых скобках `'uniqUpTo(6)'`. + +Пример: + +```sql +SELECT arrayReduce('max', [1, 2, 3]) +``` + +```text +┌─arrayReduce('max', [1, 2, 3])─┐ +│ 3 │ +└───────────────────────────────┘ +``` + +Если агрегатная функция имеет несколько аргументов, то эту функцию можно применять к нескольким массивам одинакового размера. + +Пример: + +```sql +SELECT arrayReduce('maxIf', [3, 5], [1, 0]) +``` + +```text +┌─arrayReduce('maxIf', [3, 5], [1, 0])─┐ +│ 3 │ +└──────────────────────────────────────┘ +``` + +Пример с параметрической агрегатной функцией: + +```sql +SELECT arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) +``` + +```text +┌─arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])─┐ +│ 4 │ +└─────────────────────────────────────────────────────────────┘ +``` + +## arrayReverse(arr) {#array_functions-arrayreverse} + +Возвращает массив того же размера, что и исходный массив, содержащий элементы в обратном порядке. + +Пример: +```sql +SELECT arrayReverse([1, 2, 3]) +``` + +```text +┌─arrayReverse([1, 2, 3])─┐ +│ [3,2,1] │ +└─────────────────────────┘ +``` + +# reverse(arr) {#array_functions-reverse} + +Синоним для ["arrayReverse"](#array_functions-arrayreverse) + + [Оригинальная статья](https://clickhouse.yandex/docs/ru/query_language/functions/array_functions/) -- GitLab