跳转到主要内容

MEDIAN() 和 PERCENTILE() 函数

  • 在 Live 模式下,MEDIAN() 和 PERCENTILE() 函数 (自 connector v0.1.3 版本起) 使用 ClickHouse quantile()() 函数,可显著提升计算速度,但会采用采样。如果你需要获得精确的计算结果,请使用 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() 函数 (相当于 ClickHouse 中的 bar()) 。例如,这个计算字段会以 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 million
    
  • COUNTD_UNIQ([my_field]) (在 v0.2.0 中新增) — 计算参数中不同值的近似个数。相当于 uniq()。比 COUNTD() 快得多。
  • DATE_BIN('day', 10, [my_datetime_or_date]) (在 v0.2.1 中新增) — 相当于 ClickHouse 中的 toStartOfInterval()。将 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:00
    
  • FORMAT_READABLE_QUANTITY([my_integer]) (在 v0.2.1 中添加) — 返回一个带后缀 (千、百万、十亿等) 的四舍五入数字字符串。它有助于人们读取大数字。等同于 formatReadableQuantity()
  • FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit]) (于 v0.2.1 中新增) — 接受以秒为单位的时间间隔。返回一个表示时间间隔的字符串,包含 (年、月、日、小时、分钟、秒) 。optional_max_unit 为要显示的最大单位。可接受的值:secondsminuteshoursdaysmonthsyears。等同于 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 新增) — 精确计算数值数据序列的百分位。推荐的 level 取值范围为 [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 中新增) — 非官方的 RANDOM() Tableau 函数,返回 0 到 1 之间的浮点值。
  • RAND_CONSTANT([optional_field]) (于 v0.2.1 新增) — 生成一个带有随机值的常量列。类似于 {RAND()} 的固定 LOD,但速度更快。等同于 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()
最后修改于 2026年6月10日