mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
Added translation
This commit is contained in:
parent
c50eb78819
commit
3ee64dc629
@ -5,9 +5,7 @@ toc_title: Array(T)
|
|||||||
|
|
||||||
# Array(T) {#data-type-array}
|
# Array(T) {#data-type-array}
|
||||||
|
|
||||||
Массив из элементов типа `T`.
|
Массив из элементов типа `T`. `T` может любым, в том числе, массивом. Таким образом поддержаны многомерные массивы.
|
||||||
|
|
||||||
`T` может любым, в том числе, массивом. Таким образом поддержаны многомерные массивы.
|
|
||||||
|
|
||||||
## Создание массива {#sozdanie-massiva}
|
## Создание массива {#sozdanie-massiva}
|
||||||
|
|
||||||
@ -76,3 +74,24 @@ Received exception from server (version 1.1.54388):
|
|||||||
Code: 386. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: There is no supertype for types UInt8, String because some of them are String/FixedString and some of them are not.
|
Code: 386. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: There is no supertype for types UInt8, String because some of them are String/FixedString and some of them are not.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Размер массива {#array-size}
|
||||||
|
|
||||||
|
Узнать размер массива можно с помощью подстолбца `size0` без чтения всего столбца. Для многомерных массивов можно использовать подстолбец size`n-1`, где `n` — требуемое измерение.
|
||||||
|
|
||||||
|
Запрос:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
CREATE TABLE t_arr (`arr` Array(Array(Array(UInt32)))) ENGINE = MergeTree ORDER BY tuple();
|
||||||
|
|
||||||
|
INSERT INTO t_arr VALUES ([[[12, 13, 0, 1],[12]]]);
|
||||||
|
|
||||||
|
SELECT arr.size0, arr.size1, arr.size2 FROM t_arr;
|
||||||
|
```
|
||||||
|
|
||||||
|
Результат:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─arr.size0─┬─arr.size1─┬─arr.size2─┐
|
||||||
|
│ 1 │ [2] │ [[4,1]] │
|
||||||
|
└───────────┴───────────┴───────────┘
|
||||||
|
```
|
||||||
|
@ -29,7 +29,7 @@ CREATE TABLE test.visits
|
|||||||
|
|
||||||
В этом примере объявлена вложенная структура данных `Goals`, содержащая данные о достижении целей. Каждой строке таблицы visits может соответствовать от нуля до произвольного количества достижений целей.
|
В этом примере объявлена вложенная структура данных `Goals`, содержащая данные о достижении целей. Каждой строке таблицы visits может соответствовать от нуля до произвольного количества достижений целей.
|
||||||
|
|
||||||
Поддерживается только один уровень вложенности. Столбцы вложенных структур, содержащие массивы, эквивалентны многомерным массивам, поэтому их поддержка ограничена (не поддерживается хранение таких столбцов в таблицах с движком семейства MergeTree).
|
Поддерживаются любые уровни вложенности. Столбцы вложенных структур, содержащие массивы, эквивалентны многомерным массивам, поэтому их поддержка ограничена (не поддерживается хранение таких столбцов в таблицах с движком семейства MergeTree).
|
||||||
|
|
||||||
В большинстве случаев, при работе с вложенной структурой данных, указываются отдельные её столбцы. Для этого, имена столбцов указываются через точку. Эти столбцы представляют собой массивы соответствующих типов. Все столбцы-массивы одной вложенной структуры данных имеют одинаковые длины.
|
В большинстве случаев, при работе с вложенной структурой данных, указываются отдельные её столбцы. Для этого, имена столбцов указываются через точку. Эти столбцы представляют собой массивы соответствующих типов. Все столбцы-массивы одной вложенной структуры данных имеют одинаковые длины.
|
||||||
|
|
||||||
|
@ -27,6 +27,31 @@ toc_title: Nullable
|
|||||||
!!! info "Info"
|
!!! info "Info"
|
||||||
Почти всегда использование `Nullable` снижает производительность, учитывайте это при проектировании своих баз.
|
Почти всегда использование `Nullable` снижает производительность, учитывайте это при проектировании своих баз.
|
||||||
|
|
||||||
|
## Поиск NULL {#finding-null}
|
||||||
|
|
||||||
|
Найти значения `NULL` в столбце можно с помощью подстобца `null`, при этом чтение всего столбца не происходит. Подстолбец возвращает `1`, если соответственное значение является `NULL`, и `0` в противоположном случае.
|
||||||
|
|
||||||
|
Запрос:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
CREATE TABLE nullable ( `n` Nullable(UInt32)) ENGINE = MergeTree ORDER BY tuple();
|
||||||
|
|
||||||
|
INSERT INTO nullable VALUES (1) (NULL) (2) (NULL);
|
||||||
|
|
||||||
|
SELECT n.null FROM nullable;
|
||||||
|
```
|
||||||
|
|
||||||
|
Результат:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─n.null─┐
|
||||||
|
│ 0 │
|
||||||
|
│ 1 │
|
||||||
|
│ 0 │
|
||||||
|
│ 1 │
|
||||||
|
└────────┘
|
||||||
|
```
|
||||||
|
|
||||||
## Пример использования {#primer-ispolzovaniia}
|
## Пример использования {#primer-ispolzovaniia}
|
||||||
|
|
||||||
``` sql
|
``` sql
|
||||||
|
@ -47,3 +47,30 @@ SELECT tuple(1,NULL) AS x, toTypeName(x)
|
|||||||
└──────────┴─────────────────────────────────┘
|
└──────────┴─────────────────────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Адрессация элементов кортежа {#addressing-tuple-elements}
|
||||||
|
|
||||||
|
Можно считывать элементы кортежей с помощью индексов и имен:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
CREATE TABLE named_tuples (`a` Tuple(s String, i Int64)) ENGINE = Memory;
|
||||||
|
|
||||||
|
INSERT INTO named_tuples VALUES (('y', 10)), (('x',-10));
|
||||||
|
|
||||||
|
SELECT a.s FROM named_tuples;
|
||||||
|
|
||||||
|
SELECT a.2 FROM named_tuples;
|
||||||
|
```
|
||||||
|
|
||||||
|
Результат:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─a.s─┐
|
||||||
|
│ y │
|
||||||
|
│ x │
|
||||||
|
└─────┘
|
||||||
|
|
||||||
|
┌─tupleElement(a, 2)─┐
|
||||||
|
│ 10 │
|
||||||
|
│ -10 │
|
||||||
|
└────────────────────┘
|
||||||
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user