mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 09:02:00 +00:00
Merge pull request #24762 from adevyatova/annadevyatova-DOCSUP-8214-dictGet
DOCSUP-8214: Document the dictGetChildren, dictGetDescendants functions
This commit is contained in:
commit
0b0c970128
@ -288,6 +288,119 @@ dictIsIn('dict_name', child_id_expr, ancestor_id_expr)
|
|||||||
|
|
||||||
Type: `UInt8`.
|
Type: `UInt8`.
|
||||||
|
|
||||||
|
## dictGetChildren {#dictgetchildren}
|
||||||
|
|
||||||
|
Returns first-level children as an array of indexes. It is the inverse transformation for [dictGetHierarchy](#dictgethierarchy).
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
dictGetChildren(dict_name, key)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- `dict_name` — Name of the dictionary. [String literal](../../sql-reference/syntax.md#syntax-string-literal).
|
||||||
|
- `key` — Key value. [Expression](../../sql-reference/syntax.md#syntax-expressions) returning a [UInt64](../../sql-reference/data-types/int-uint.md)-type value.
|
||||||
|
|
||||||
|
**Returned values**
|
||||||
|
|
||||||
|
- First-level descendants for the key.
|
||||||
|
|
||||||
|
Type: [Array](../../sql-reference/data-types/array.md)([UInt64](../../sql-reference/data-types/int-uint.md)).
|
||||||
|
|
||||||
|
**Example**
|
||||||
|
|
||||||
|
Consider the hierarchic dictionary:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─id─┬─parent_id─┐
|
||||||
|
│ 1 │ 0 │
|
||||||
|
│ 2 │ 1 │
|
||||||
|
│ 3 │ 1 │
|
||||||
|
│ 4 │ 2 │
|
||||||
|
└────┴───────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
First-level children:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetChildren('hierarchy_flat_dictionary', number) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetChildren('hierarchy_flat_dictionary', number)─┐
|
||||||
|
│ [1] │
|
||||||
|
│ [2,3] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└──────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## dictGetDescendant {#dictgetdescendant}
|
||||||
|
|
||||||
|
Returns all descendants as if [dictGetChildren](#dictgetchildren) function was applied `level` times recursively.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
dictGetDescendants(dict_name, key, level)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- `dict_name` — Name of the dictionary. [String literal](../../sql-reference/syntax.md#syntax-string-literal).
|
||||||
|
- `key` — Key value. [Expression](../../sql-reference/syntax.md#syntax-expressions) returning a [UInt64](../../sql-reference/data-types/int-uint.md)-type value.
|
||||||
|
- `level` — Hierarchy level. If `level = 0` returns all descendants to the end. [UInt8](../../sql-reference/data-types/int-uint.md).
|
||||||
|
|
||||||
|
**Returned values**
|
||||||
|
|
||||||
|
- Descendants for the key.
|
||||||
|
|
||||||
|
Type: [Array](../../sql-reference/data-types/array.md)([UInt64](../../sql-reference/data-types/int-uint.md)).
|
||||||
|
|
||||||
|
**Example**
|
||||||
|
|
||||||
|
Consider the hierarchic dictionary:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─id─┬─parent_id─┐
|
||||||
|
│ 1 │ 0 │
|
||||||
|
│ 2 │ 1 │
|
||||||
|
│ 3 │ 1 │
|
||||||
|
│ 4 │ 2 │
|
||||||
|
└────┴───────────┘
|
||||||
|
```
|
||||||
|
All descendants:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetDescendants('hierarchy_flat_dictionary', number) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetDescendants('hierarchy_flat_dictionary', number)─┐
|
||||||
|
│ [1,2,3,4] │
|
||||||
|
│ [2,3,4] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
First-level descendants:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetDescendants('hierarchy_flat_dictionary', number, 1) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetDescendants('hierarchy_flat_dictionary', number, 1)─┐
|
||||||
|
│ [1] │
|
||||||
|
│ [2,3] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
## Other Functions {#ext_dict_functions-other}
|
## Other Functions {#ext_dict_functions-other}
|
||||||
|
|
||||||
ClickHouse supports specialized functions that convert dictionary attribute values to a specific data type regardless of the dictionary configuration.
|
ClickHouse supports specialized functions that convert dictionary attribute values to a specific data type regardless of the dictionary configuration.
|
||||||
|
@ -244,7 +244,7 @@ dictHas('dict_name', id)
|
|||||||
- 0, если ключа нет.
|
- 0, если ключа нет.
|
||||||
- 1, если ключ есть.
|
- 1, если ключ есть.
|
||||||
|
|
||||||
Тип — `UInt8`.
|
Тип: [UInt8](../../sql-reference/data-types/int-uint.md).
|
||||||
|
|
||||||
## dictGetHierarchy {#dictgethierarchy}
|
## dictGetHierarchy {#dictgethierarchy}
|
||||||
|
|
||||||
@ -265,7 +265,7 @@ dictGetHierarchy('dict_name', key)
|
|||||||
|
|
||||||
- Цепочка предков заданного ключа.
|
- Цепочка предков заданного ключа.
|
||||||
|
|
||||||
Type: [Array(UInt64)](../../sql-reference/functions/ext-dict-functions.md).
|
Type: [Array](../../sql-reference/data-types/array.md)([UInt64](../../sql-reference/data-types/int-uint.md)).
|
||||||
|
|
||||||
## dictIsIn {#dictisin}
|
## dictIsIn {#dictisin}
|
||||||
|
|
||||||
@ -284,7 +284,120 @@ Type: [Array(UInt64)](../../sql-reference/functions/ext-dict-functions.md).
|
|||||||
- 0, если `child_id_expr` — не дочерний элемент `ancestor_id_expr`.
|
- 0, если `child_id_expr` — не дочерний элемент `ancestor_id_expr`.
|
||||||
- 1, если `child_id_expr` — дочерний элемент `ancestor_id_expr` или если `child_id_expr` и есть `ancestor_id_expr`.
|
- 1, если `child_id_expr` — дочерний элемент `ancestor_id_expr` или если `child_id_expr` и есть `ancestor_id_expr`.
|
||||||
|
|
||||||
Тип — `UInt8`.
|
Тип: [UInt8](../../sql-reference/data-types/int-uint.md).
|
||||||
|
|
||||||
|
## dictGetChildren {#dictgetchildren}
|
||||||
|
|
||||||
|
Возвращает потомков первого уровня в виде массива индексов. Это обратное преобразование для [dictGetHierarchy](#dictgethierarchy).
|
||||||
|
|
||||||
|
**Синтаксис**
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
dictGetChildren(dict_name, key)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Аргументы**
|
||||||
|
|
||||||
|
- `dict_name` — имя словаря. [String literal](../../sql-reference/syntax.md#syntax-string-literal).
|
||||||
|
- `key` — значение ключа. [Выражение](../syntax.md#syntax-expressions), возвращающее значение типа [UInt64](../../sql-reference/functions/ext-dict-functions.md).
|
||||||
|
|
||||||
|
**Возвращаемые значения**
|
||||||
|
|
||||||
|
- Потомки первого уровня для ключа.
|
||||||
|
|
||||||
|
Тип: [Array](../../sql-reference/data-types/array.md)([UInt64](../../sql-reference/data-types/int-uint.md)).
|
||||||
|
|
||||||
|
**Пример**
|
||||||
|
|
||||||
|
Рассмотрим иерархический словарь:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─id─┬─parent_id─┐
|
||||||
|
│ 1 │ 0 │
|
||||||
|
│ 2 │ 1 │
|
||||||
|
│ 3 │ 1 │
|
||||||
|
│ 4 │ 2 │
|
||||||
|
└────┴───────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Потомки первого уровня:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetChildren('hierarchy_flat_dictionary', number) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetChildren('hierarchy_flat_dictionary', number)─┐
|
||||||
|
│ [1] │
|
||||||
|
│ [2,3] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└──────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## dictGetDescendant {#dictgetdescendant}
|
||||||
|
|
||||||
|
Возвращает всех потомков, как если бы функция [dictGetChildren](#dictgetchildren) была выполнена `level` раз рекурсивно.
|
||||||
|
|
||||||
|
**Синтаксис**
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
dictGetDescendants(dict_name, key, level)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Аргументы**
|
||||||
|
|
||||||
|
- `dict_name` — имя словаря. [String literal](../../sql-reference/syntax.md#syntax-string-literal).
|
||||||
|
- `key` — значение ключа. [Выражение](../syntax.md#syntax-expressions), возвращающее значение типа [UInt64](../../sql-reference/functions/ext-dict-functions.md).
|
||||||
|
- `level` — уровень иерархии. Если `level = 0`, возвращаются все потомки. [UInt8](../../sql-reference/data-types/int-uint.md).
|
||||||
|
|
||||||
|
**Возвращаемые значения**
|
||||||
|
|
||||||
|
- Потомки для ключа.
|
||||||
|
|
||||||
|
Тип: [Array](../../sql-reference/data-types/array.md)([UInt64](../../sql-reference/data-types/int-uint.md)).
|
||||||
|
|
||||||
|
**Пример**
|
||||||
|
|
||||||
|
Рассмотрим иерархический словарь:
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─id─┬─parent_id─┐
|
||||||
|
│ 1 │ 0 │
|
||||||
|
│ 2 │ 1 │
|
||||||
|
│ 3 │ 1 │
|
||||||
|
│ 4 │ 2 │
|
||||||
|
└────┴───────────┘
|
||||||
|
```
|
||||||
|
Все потомки:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetDescendants('hierarchy_flat_dictionary', number) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetDescendants('hierarchy_flat_dictionary', number)─┐
|
||||||
|
│ [1,2,3,4] │
|
||||||
|
│ [2,3,4] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
Потомки первого уровня:
|
||||||
|
|
||||||
|
``` sql
|
||||||
|
SELECT dictGetDescendants('hierarchy_flat_dictionary', number, 1) FROM system.numbers LIMIT 4;
|
||||||
|
```
|
||||||
|
|
||||||
|
``` text
|
||||||
|
┌─dictGetDescendants('hierarchy_flat_dictionary', number, 1)─┐
|
||||||
|
│ [1] │
|
||||||
|
│ [2,3] │
|
||||||
|
│ [4] │
|
||||||
|
│ [] │
|
||||||
|
└────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
## Прочие функции {#ext_dict_functions-other}
|
## Прочие функции {#ext_dict_functions-other}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user