Funções MEDIAN() e PERCENTILE()
- No modo Live, as funções MEDIAN() e PERCENTILE() (a partir da versão 0.1.3 do conector) usam a função quantile()() do ClickHouse, o que acelera significativamente o cálculo, mas usa amostragem. Se você quiser obter resultados de cálculo exatos, use as funções
MEDIAN_EXACT()ePERCENTILE_EXACT()(baseadas em quantileExact()()). - No modo Extract, você não pode usar MEDIAN_EXACT() e PERCENTILE_EXACT() porque MEDIAN() e PERCENTILE() são sempre precisas (e lentas).
Funções adicionais para campos calculados no modo Live
O ClickHouse tem um grande número de funções que podem ser usadas na análise de dados — muito mais do que o Tableau oferece. Para facilitar o uso, adicionamos novas funções que podem ser usadas no modo Live ao criar Campos Calculados. Infelizmente, não é possível adicionar descrições a essas funções na interface do Tableau, então vamos descrevê-las aqui mesmo.
-IfCombinador de agregação (adicionado na v0.2.3) - permite aplicar filtros no nível da linha diretamente no cálculo de agregação. As funçõesSUM_IF(), AVG_IF(), COUNT_IF(), MIN_IF() & MAX_IF()foram adicionadas.BAR([my_int], [min_val_int], [max_val_int], [bar_string_length_int])(adicionado na v0.2.1) — Esqueça os gráficos de barras sem graça! Use a funçãoBAR()em vez disso (equivalente abar()no ClickHouse). Por exemplo, este campo calculado retorna barras elegantes como 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])(adicionado na v0.2.0) — Calcula o número aproximado de valores distintos do argumento. Equivalente a uniq(). Muito mais rápida queCOUNTD().DATE_BIN('day', 10, [my_datetime_or_date])(adicionado na v0.2.1) — equivalente àtoStartOfInterval()no ClickHouse. Arredonda um Date ou Date & Time para baixo até o intervalo especificado, por exemplo:== 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])(adicionado na v0.2.1) — Retorna um número arredondado com um sufixo (mil, milhão, bilhão etc.) em formato de string. É útil para facilitar a leitura de números grandes. Equivalente aformatReadableQuantity().FORMAT_READABLE_TIMEDELTA([my_integer_timedelta_sec], [optional_max_unit])(adicionado na v0.2.1) — Aceita o intervalo de tempo em segundos. Retorna um intervalo de tempo com (ano, mês, dia, hora, minuto, segundo) como string.optional_max_unité a maior unidade a ser exibida. Valores aceitos:seconds,minutes,hours,days,months,years. Equivalente aformatReadableTimeDelta().GET_SETTING([my_setting_name])(adicionado na v0.2.1) — Retorna o valor atual de uma configuração personalizada. Equivale agetSetting().HEX([my_string])(adicionado na v0.2.1) — Retorna uma string com a representação hexadecimal do argumento. Equivalente ahex().KURTOSIS([my_number])— Calcula a curtose amostral de uma sequência. É equivalente akurtSamp().KURTOSISP([my_number])— Calcula a curtose de uma sequência. Equivale akurtPop().MEDIAN_EXACT([my_number])(adicionado na v0.1.3) — Calcula com exatidão a mediana de uma sequência de dados numéricos. Equivalente aquantileExact(0.5)(...).MOD([my_number_1], [my_number_2])— Calcula o resto da divisão. Se os argumentos forem números de ponto flutuante, serão convertidos previamente em inteiros, descartando a parte decimal. Equivalente amodulo().PERCENTILE_EXACT([my_number], [level_float])(adicionada na v0.1.3) — Calcula exatamente o percentil de uma sequência de dados numéricos. O nível recomendado está no intervalo [0.01, 0.99]. Equivalente aquantileExact()().PROPER([my_string])(adicionado na v0.2.5) - Converte uma cadeia de texto para que a primeira letra de cada palavra fique em maiúscula e as letras restantes fiquem em minúsculas. Espaços e caracteres não alfanuméricos, como sinais de pontuação, também funcionam como separadores. Por exemplo:PROPER("PRODUCT name") => "Product Name"PROPER("darcy-mae") => "Darcy-Mae"RAND()(adicionado na v0.2.1) — retorna um número inteiro (UInt32), por exemplo3446222955. É equivalente arand().RANDOM()(adicionado na v0.2.1) — função não oficial do TableauRANDOM(), que retorna um valor de ponto flutuante entre 0 e 1.RAND_CONSTANT([optional_field])(adicionado na v0.2.1) — Produz uma coluna constante com um valor aleatório. É como um Fixed LOD com{RAND()}, mas mais rápido. Equivalente arandConstant().REAL([my_number])— Converte o campo em float (Float64). Detalhesaqui.SHA256([my_string])(adicionado na v0.2.1) — Calcula o hash SHA-256 de uma string e retorna o conjunto de bytes resultante como uma string (FixedString). É conveniente usá-la com a funçãoHEX(), por exemplo,HEX(SHA256([my_string])). Equivalente aSHA256().SKEWNESS([my_number])— Calcula a assimetria amostral de uma sequência. É equivalente askewSamp().SKEWNESSP([my_number])— Calcula a assimetria de uma sequência. É equivalente askewPop().TO_TYPE_NAME([field])(adicionado na v0.2.1) — Retorna uma string com o nome do tipo no ClickHouse do argumento informado. Equivalente atoTypeName().TRUNC([my_float])— É igual à funçãoFLOOR([my_float]). Equivalente atrunc().UNHEX([my_string])(adicionado na v0.2.1) — Executa a operação inversa deHEX(). Equivalente aunhex().