Функции MEDIAN() и PERCENTILE()
- В режиме Live функции MEDIAN() и PERCENTILE() (начиная с release коннектор v0.1.3) используют функцию quantile()() в ClickHouse, что значительно ускоряет вычисления, но использует сэмплирование. Если вам нужны точные результаты, используйте функции
MEDIAN_EXACT()иPERCENTILE_EXACT()(на основе quantileExact()()). - В режиме Extract нельзя использовать MEDIAN_EXACT() и PERCENTILE_EXACT(), потому что MEDIAN() и PERCENTILE() всегда дают точные результаты (но работают медленно).
Дополнительные функции для вычисляемых полей в режиме Live
В ClickHouse есть огромное количество функций, которые можно использовать для анализа данных, — гораздо больше, чем поддерживает Tableau. Для удобства пользователей мы добавили новые функции, доступные в режиме Live при создании вычисляемых полей. К сожалению, добавить описания для этих функций в интерфейсе Tableau невозможно, поэтому мы приведем их прямо здесь.
-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()в ClickHouse). Например, это вычисляемое поле возвращает аккуратные полоски в виде String:BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int]) + " " + FORMAT_READABLE_QUANTITY([my_int])== BAR() == ██████████████████▊ 327.06 million █████ 88.02 million ███████████████ 259.37 millionCOUNTD_UNIQ([my_field])(добавлено в v0.2.0) — Вычисляет приблизительное число различных значений аргумента. Эквивалент функции uniq(). Значительно быстрее, чемCOUNTD().DATE_BIN('day', 10, [my_datetime_or_date])(добавлено в v0.2.1) — эквивалентtoStartOfInterval()в ClickHouse. Округляет значение Date или Date & Time вниз до указанного интервала, например:== 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:00FORMAT_READABLE_QUANTITY([my_integer])(добавлено в v0.2.1) — Возвращает округлённое число с суффиксом (тысяча, миллион, миллиард и т. д.) в виде строки. Удобно для чтения больших чисел. ЭквивалентformatReadableQuantity().FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])(добавлено в v0.2.1) — Принимает временной интервал в секундах. Возвращает строковое представление временного интервала в виде (год, месяц, день, час, минута, секунда).optional_max_unit— максимальная единица, которую нужно отображать. Допустимые значения:seconds,minutes,hours,days,months,years. Эквивалент функцииformatReadableTimeDelta().GET_SETTING([my_setting_name])(добавлено в v0.2.1) — Возвращает текущее значение пользовательской настройки. ЭквивалентноgetSetting().HEX([my_string])(добавлено в v0.2.1) — Возвращает строку с шестнадцатеричным представлением аргумента. Эквивалент функцииhex().KURTOSIS([my_number])— Вычисляет выборочный эксцесс последовательности. Эквивалентна функцииkurtSamp().KURTOSISP([my_number])— Вычисляет эксцесс для последовательности. Эквивалент функцииkurtPop().MEDIAN_EXACT([my_number])(добавлено в v0.1.3) — Точно вычисляет медиану числовой последовательности значений. Эквивалент функцииquantileExact(0.5)(...).MOD([my_number_1], [my_number_2])— Вычисляет остаток от деления. Если аргументы — числа с плавающей запятой, они предварительно преобразуются в целые числа путём отбрасывания дробной части. Эквивалент функцииmodulo().PERCENTILE_EXACT([my_number], [level_float])(добавлено в v0.1.3) — Точно вычисляет процентиль последовательности числовых данных. Рекомендуемый диапазон значений уровня: [0.01, 0.99]. Эквивалентна функцииquantileExact()().PROPER([my_string])(добавлено в v0.2.5) — Преобразует текстовую строку так, что первая буква каждого слова становится заглавной, а остальные буквы — строчными. Пробелы и неалфавитно-цифровые символы, например знаки препинания, также считаются разделителями. Например:PROPER("PRODUCT name") => "Product Name"PROPER("darcy-mae") => "Darcy-Mae"RAND()(добавлено в v0.2.1) — возвращает целое число (UInt32), например3446222955. Эквивалентнаrand().RANDOM()(добавлено в v0.2.1) — неофициальная функция TableauRANDOM(), возвращающая число с плавающей запятой в диапазоне от 0 до 1.RAND_CONSTANT([optional_field])(добавлено в v0.2.1) — Создаёт постоянный столбец со случайным значением. По сути, это что-то вродеFixed LODс{RAND()}, но быстрее. ЭквивалентrandConstant().REAL([my_number])— Преобразует поле в число с плавающей точкой (Float64). Подробностиздесь.SHA256([my_string])(добавлено в v0.2.1) — Вычисляет хеш SHA-256 для строки и возвращает полученный набор байтов в виде строки (FixedString). Удобно использовать вместе с функциейHEX(), например:HEX(SHA256([my_string])). ЭквивалентSHA256().SKEWNESS([my_number])— Вычисляет выборочную асимметрию последовательности. Эквивалент функцииskewSamp().SKEWNESSP([my_number])— Вычисляет коэффициент асимметрии последовательности. Эквивалентна функцииskewPop().TO_TYPE_NAME([field])(добавлено в v0.2.1) — Возвращает строку с именем типа ClickHouse для переданного аргумента. ЭквивалентtoTypeName().TRUNC([my_float])— то же, что и функцияFLOOR([my_float]). Эквивалентtrunc().UNHEX([my_string])(добавлено в v0.2.1) — Выполняет операцию, обратнуюHEX(). Эквивалентноunhex().