> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Рекомендации по анализу в Tableau при использовании официального коннектора ClickHouse.

# Советы по анализу

<div id="median-and-percentile-functions">
  ## Функции MEDIAN() и PERCENTILE()
</div>

* В режиме Live функции MEDIAN() и PERCENTILE() (начиная с release коннектор v0.1.3) используют [функцию quantile()() в ClickHouse](/ru/reference/functions/aggregate-functions/quantile), что значительно ускоряет вычисления, но использует сэмплирование. Если вам нужны точные результаты, используйте функции `MEDIAN_EXACT()` и `PERCENTILE_EXACT()` (на основе [quantileExact()()](/ru/reference/functions/aggregate-functions/quantileExact)).
* В режиме Extract нельзя использовать MEDIAN\_EXACT() и PERCENTILE\_EXACT(), потому что MEDIAN() и PERCENTILE() всегда дают точные результаты (но работают медленно).

<div id="additional-functions-for-calculated-fields-in-live-mode">
  ## Дополнительные функции для вычисляемых полей в режиме Live
</div>

В ClickHouse есть огромное количество функций, которые можно использовать для анализа данных, — гораздо больше, чем поддерживает Tableau. Для удобства пользователей мы добавили новые функции, доступные в режиме Live при создании вычисляемых полей. К сожалению, добавить описания для этих функций в интерфейсе Tableau невозможно, поэтому мы приведем их прямо здесь.

* **[`-If` Комбинатор агрегации](/ru/reference/functions/aggregate-functions/combinators#-if)** *(добавлено в v0.2.3)* — позволяет применять фильтры на уровне строк непосредственно в агрегатных вычислениях. Добавлены функции `SUM_IF(), AVG_IF(), COUNT_IF(), MIN_IF() & MAX_IF()`.
* **`BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int])`** *(добавлено в v0.2.1)* — Забудьте о скучных столбчатых диаграммах! Вместо них используйте функцию `BAR()` (эквивалент [`bar()`](/ru/reference/functions/regular-functions/other-functions#bar) в ClickHouse). Например, это вычисляемое поле возвращает аккуратные полоски в виде String:
  ```text theme={null}
  BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int]) + "  " + FORMAT_READABLE_QUANTITY([my_int])
  ```
  ```text theme={null}
  == BAR() ==
  ██████████████████▊  327.06 million
  █████  88.02 million
  ███████████████  259.37 million
  ```
* **`COUNTD_UNIQ([my_field])`** *(добавлено в v0.2.0)* — Вычисляет приблизительное число различных значений аргумента. Эквивалент функции [uniq()](/ru/reference/functions/aggregate-functions/uniq). Значительно быстрее, чем `COUNTD()`.
* **`DATE_BIN('day', 10, [my_datetime_or_date])`** *(добавлено в v0.2.1)* — эквивалент [`toStartOfInterval()`](/ru/reference/functions/regular-functions/date-time-functions#toStartOfInterval) в ClickHouse. Округляет значение Date или Date & Time вниз до указанного интервала, например:
  ```text theme={null}
   == my_datetime_or_date == | == DATE_BIN('day', 10, [my_datetime_or_date]) ==
      28.07.2004 06:54:50    |              21.07.2004 00:00:00
      17.07.2004 14:01:56    |              11.07.2004 00:00:00
      14.07.2004 07:43:00    |              11.07.2004 00:00:00
  ```
* **`FORMAT_READABLE_QUANTITY([my_integer])`** *(добавлено в v0.2.1)* — Возвращает округлённое число с суффиксом (тысяча, миллион, миллиард и т. д.) в виде строки. Удобно для чтения больших чисел. Эквивалент [`formatReadableQuantity()`](/ru/reference/functions/regular-functions/other-functions#formatReadableQuantity).
* **`FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])`** *(добавлено в v0.2.1)* — Принимает временной интервал в секундах. Возвращает строковое представление временного интервала в виде (год, месяц, день, час, минута, секунда). `optional_max_unit` — максимальная единица, которую нужно отображать. Допустимые значения: `seconds`, `minutes`, `hours`, `days`, `months`, `years`. Эквивалент функции [`formatReadableTimeDelta()`](/ru/reference/functions/regular-functions/other-functions#formatReadableTimeDelta).
* **`GET_SETTING([my_setting_name])`** *(добавлено в v0.2.1)* — Возвращает текущее значение пользовательской настройки. Эквивалентно [`getSetting()`](/ru/reference/functions/regular-functions/other-functions#getSetting).
* **`HEX([my_string])`** *(добавлено в v0.2.1)* — Возвращает строку с шестнадцатеричным представлением аргумента. Эквивалент функции [`hex()`](/ru/reference/functions/regular-functions/encoding-functions#hex).
* **`KURTOSIS([my_number])`** — Вычисляет выборочный эксцесс последовательности. Эквивалентна функции [`kurtSamp()`](/ru/reference/functions/aggregate-functions/kurtSamp).
* **`KURTOSISP([my_number])`** — Вычисляет эксцесс для последовательности. Эквивалент функции [`kurtPop()`](/ru/reference/functions/aggregate-functions/kurtPop).
* **`MEDIAN_EXACT([my_number])`** *(добавлено в v0.1.3)* — Точно вычисляет медиану числовой последовательности значений. Эквивалент функции [`quantileExact(0.5)(...)`](/ru/reference/functions/aggregate-functions/quantileExact).
* **`MOD([my_number_1], [my_number_2])`** — Вычисляет остаток от деления. Если аргументы — числа с плавающей запятой, они предварительно преобразуются в целые числа путём отбрасывания дробной части. Эквивалент функции [`modulo()`](/ru/reference/functions/regular-functions/arithmetic-functions#modulo).
* **`PERCENTILE_EXACT([my_number], [level_float])`** *(добавлено в v0.1.3)* — Точно вычисляет процентиль последовательности числовых данных. Рекомендуемый диапазон значений уровня: \[0.01, 0.99]. Эквивалентна функции [`quantileExact()()`](/ru/reference/functions/aggregate-functions/quantileExact).
* **`PROPER([my_string])`** *(добавлено в v0.2.5)* — Преобразует текстовую строку так, что первая буква каждого слова становится заглавной, а остальные буквы — строчными. Пробелы и неалфавитно-цифровые символы, например знаки препинания, также считаются разделителями. Например:
  ```text theme={null}
  PROPER("PRODUCT name") => "Product Name"
  ```
  ```text theme={null}
  PROPER("darcy-mae") => "Darcy-Mae"
  ```
* **`RAND()`** *(добавлено в v0.2.1)* — возвращает целое число (UInt32), например `3446222955`. Эквивалентна [`rand()`](/ru/reference/functions/regular-functions/random-functions#rand).
* **`RANDOM()`** *(добавлено в v0.2.1)* — неофициальная функция Tableau [`RANDOM()`](https://kb.tableau.com/articles/issue/random-function-produces-inconsistent-results), возвращающая число с плавающей запятой в диапазоне от 0 до 1.
* **`RAND_CONSTANT([optional_field])`** *(добавлено в v0.2.1)* — Создаёт постоянный столбец со случайным значением. По сути, это что-то вроде `Fixed LOD` с `{RAND()}`, но быстрее. Эквивалент [`randConstant()`](/ru/reference/functions/regular-functions/random-functions#randConstant).
* **`REAL([my_number])`** — Преобразует поле в число с плавающей точкой (Float64). Подробности [`здесь`](/ru/reference/data-types/decimal#operations-and-result-type).
* **`SHA256([my_string])`** *(добавлено в v0.2.1)* — Вычисляет хеш SHA-256 для строки и возвращает полученный набор байтов в виде строки (FixedString). Удобно использовать вместе с функцией `HEX()`, например: `HEX(SHA256([my_string]))`. Эквивалент [`SHA256()`](/ru/reference/functions/regular-functions/hash-functions#SHA256).
* **`SKEWNESS([my_number])`** — Вычисляет выборочную асимметрию последовательности. Эквивалент функции [`skewSamp()`](/ru/reference/functions/aggregate-functions/skewSamp).
* **`SKEWNESSP([my_number])`** — Вычисляет коэффициент асимметрии последовательности. Эквивалентна функции [`skewPop()`](/ru/reference/functions/aggregate-functions/skewPop).
* **`TO_TYPE_NAME([field])`** *(добавлено в v0.2.1)* — Возвращает строку с именем типа ClickHouse для переданного аргумента. Эквивалент [`toTypeName()`](/ru/reference/functions/regular-functions/other-functions#toTypeName).
* **`TRUNC([my_float])`** — то же, что и функция `FLOOR([my_float])`. Эквивалент [`trunc()`](/ru/reference/functions/regular-functions/rounding-functions#trunc).
* **`UNHEX([my_string])`** *(добавлено в v0.2.1)* — Выполняет операцию, обратную `HEX()`. Эквивалентно [`unhex()`](/ru/reference/functions/regular-functions/encoding-functions#unhex).
