Compartilhar via


Referência de função de cálculo personalizada

Esta página fornece uma referência completa de todas as funções com suporte para cálculos personalizados em painéis de IA/BI. Para obter informações sobre como usar cálculos personalizados, consulte O que são cálculos personalizados?.

Funções de agregação

Todas as medidas calculadas devem ser agregadas. Há suporte para as seguintes operações de agregação:

Observação

Use a DISTINCT palavra-chave em funções de agregação para incluir apenas valores exclusivos na agregação. Além disso, a FILTER(WHERE condition) cláusula pode ser acrescentada a qualquer função de agregação para limitar os valores incluídos no cálculo.

Função Description
any(expr) Retornará true se pelo menos um valor do expr grupo for true.
any_value(expr) Retorna algum valor de expr para um grupo de linhas.
approx_count_distinct(expr[, relativeSD]) Retorna o número estimado de valores distintos em expr.
approx_percentile ([ALL | DISTINCT] expr, percentil [, precisão]) Retorna o valor aproximado do expr no percentil especificado.
avg(expr) Retorna a média calculada em uma coluna ou expressão.
bool_or(expr) Retorna true se pelo menos um dos valores de expr for true.
corr(expr1, expr2) Retorna o coeficiente de correlação pearson entre expr1 e expr2.
count(*) Retorna o número de linhas em um grupo.
count(DISTINCT expr) Retorna o número de linhas únicas em um grupo.
count_if(expr) Retorna a contagem de linhas que atendem a uma determinada condição.
first(expr [, ignoreNull]) Retorna o primeiro valor de expr de um grupo.
first_value(expr [, ignoreNull]) Retorna o primeiro valor de expr de um grupo.
last(expr [, ignoreNull]) Retorna o último valor de expr para o grupo.
last_value(expr [, ignoreNull]) Retorna o último valor de expr para o grupo.
listagg(expr [, delimitador]) Retorna a concatenação de valores não nulos no grupo.
max(expr) Retorna o valor máximo em uma coluna ou expressão.
max_by(expr1, expr2) Retorna o valor associado expr1 ao valor máximo de expr2.
mean(expr) Retorna a média calculada em uma coluna ou expressão.
median(expr) Retorna a mediana de um conjunto de valores.
min(expr) Retorna o valor mínimo em uma coluna ou expressão.
min_by(expr1, expr2) Retorna o valor de expr1 associado ao valor mínimo de expr2.
mode(expr [, deterministic ]) Retorna o valor mais frequente para expr.
percentil(expr, percentual [, frequência]) Retorna o valor exato de expr no percentil especificado dentro de um grupo.
percentile_approx(expr, percentual [, precisão]) Retorna o valor aproximado do expr no percentil especificado.
regr_slope(y, x) Retorna a inclinação da linha de regressão linear para pares não nulos em um grupo.
some(expr) Retornará true se pelo menos um valor do expr grupo for true.
std(expr) Retorna o desvio padrão de um conjunto de valores.
stddev(expr) Retorna o desvio padrão de um conjunto de valores.
stddev_pop(expr) Retorna o desvio padrão de população de um conjunto de valores.
stddev_samp(expr) Retorna o desvio padrão de exemplo de um conjunto de valores.
string_agg(expr [, delimitador]) Retorna a concatenação de valores de cadeia de caracteres não nulos no grupo.
sum(expr) Retorna o total de valores em uma coluna ou expressão.
variação(expr) Retorna a variação de um conjunto de valores.

Operações aritméticas

Você pode combinar expressões com as seguintes operações aritméticas:

Operation Description
expr1 % expr2 Retorna o restante da divisão expr1 por expr2.
multiplicador * multiplicando Retorna o produto de duas expressões.
expr1 + expr2 Retorna a soma de expr1 e expr2.
+ expr Retorna o valor da expressão.
expr1 - expr2 Retorna a diferença ao subtrair expr2 de expr1.
- expr Retorna o valor negado da expressão.
dividendo / divisor Retorna o resultado da divisão do dividendo pelo divisor.
divisor de dividendos div Retorna a parte integral da divisão de dividend por divisor.
abs(expr) Retorna o valor absoluto da expressão numérica.
acos(expr) Retorna o cosseno inverso (arco cosseno) de expr.
asin(expr) Retorna o seno inverso (seno do arco) de expr.
bround(expr [, d]) Retorna expr arredondado a d casas decimais usando o modo de arredondamento "HALF_EVEN".
ceil(expr) ou ceiling(expr) Retorna o menor inteiro não menor que expr.
cos(expr) Retorna o cosseno de expr.
exp(expr) Retorna e elevado à potência de expr.
floor(expr) Retorna o maior inteiro não maior que expr.
ln(expr) Retorna o logaritmo natural da expressão.
log(base, expr) Retorna o logaritmo de expr com o especificado base.
log10(expr) Retorna o logaritmo de base 10 da expressão.
mod(expr1, expr2) Retorna o restante da divisão expr1 por expr2.
nullifzero(expr) Retorna NULL se expr for 0, caso contrário, retornará expr.
pi() Retorna o valor de pi.
pmod(expr1, expr2) Retorna o valor positivo de expr1 mod expr2.
pow(expr1, expr2) ou power(expr1, expr2) Retorna o resultado de expr1 elevado à potência de expr2.
radians(expr) Converte graus em radianos.
rand([semente]) Retorna um valor aleatório com distribuição uniforme no intervalo de 0 (inclusive) a 1 (exclusivo).
round(expr [, d]) Retorna expr arredondado para d casas decimais usando HALF_UP modo de arredondamento.
sign(expr) Retorna o sinal da expressão numérica.
sin(expr) Retorna o seno de expr.
sqrt(expr) Retorna a raiz quadrada de expr.
try_add(expr1, expr2) Adiciona dois valores. Se ocorrer um erro, retornará NULL.
try_divide(dividendo, divisor) Divide o dividendo pelo divisor. Se ocorrer um erro, retornará NULL.
try_multiply(multiplicador, multiplicador) Multiplica dois números. Se ocorrer um erro, retornará NULL.
try_subtract(expr1, expr2) Subtrai expr2 de expr1. Se ocorrer um erro, retornará NULL.
zeroifnull(expr) Retorna 0 se expr estiver NULL, caso contrário, retornará expr.

Funções e operadores boolianos

Cálculos personalizados dão suporte a operadores boolianos e de comparação básicos. Há suporte para os seguintes operadores e funções:

Operation Description
expr1 != expr2 Retorna true se expr1 não for igual a expr2.
!expr Lógico que não.
expr1 &expr2 Retorna o AND bit a bit de expr1 e expr2.
expr1 && expr2 Retorna true se ambos expr1 e expr2 são true.
expr1 <=> expr2 Retorna o mesmo resultado que o operador igual para operandos não nulos, mas retorna true se ambos forem null, e false se um for null.
expr1 <> expr2 Retorna true se expr1 não for igual a expr2.
expr1 < expr2 Retorna true se expr1 for menor que expr2.
expr1 <= expr2 Retorna true se expr1 for menor ou igual a expr2.
expr1 = expr2 Retorna true se expr1 for igual a expr2.
expr1 == expr2 Retorna true se expr1 for igual a expr2.
expr1 > expr2 Retorna true se expr1 for maior que expr2.
expr1 >= expr2 Retorna true se expr1 for maior ou igual a expr2.
expr1 ^ expr2 Retorna o OR exclusivo bit a bit de expr1 e expr2.
expr1 | expr2 Retorna o OR bit a bit de expr1 e expr2.
expr1 || expr2 Retorna true se pelo menos um de expr1 ou expr2 é true.
~expr Retorna a inversão de bits (NOT) de expr.
expr1 e expr2 Retorna true se ambos expr1 e expr2 são true.
expr entre limite inferior e limite superior Testa se está expr dentro do intervalo especificado (sintaxe especial).
padrão str ilike Retorna true se str corresponder a pattern (ignorando maiúsculas e minúsculas). Também pode ser usado como ilike(str, pattern [, escapeChar]).
expr in (value1, value2, ...) Testa se expr corresponde a qualquer valor em uma lista (sintaxe especial).
isnan(expr) Retorna true se expr for NaN (não é um número).
isnotnull(expr) Retorna true se expr é NULL.
isnull(expr) Retorna true se expr for NULL.
padrão semelhante a str Retorna true se str corresponder pattern. Também pode ser usado como like(str, pattern [, escapeChar]).
não expr Não lógico (operador prefixado). Também pode ser usado como not(expr).
expr1 ou expr2 Retorna true se pelo menos um de expr1 ou expr2 é true.
str regexp regexp Retorna true se str corresponder à expressão regular regexp.
regexp_like(str, regexp) Retorna true se str corresponder à expressão regular regexp.
str rlike regexp Retorna true se str corresponder à expressão regular regexp.

Funções de conversão

Use as seguintes funções para converter valores em um tipo especificado:

Função Description
expr :: type Converte o valor expr no tipo de dados de destino type.
bigint(expr) Converte o valor expr em BIGINT.
boolean(expr) Converte o valor expr em BOOLEAN.
cast(expr AS type) Converte o valor expr no tipo de dados de destino type.
date(expr) Converte o valor expr em DATE.
decimal(expr [, p [, s]]) Converte o valor expr para DECIMAL com precisão p e escala s.
double(expr) Converte o valor expr em DOUBLE.
float(expr) Converte o valor expr em FLOAT.
int(expr) Converte o valor expr em INT.
string(expr) Converte o valor expr em STRING.
timestamp(expr) Converte o valor expr em TIMESTAMP.
to_date(expr [, fmt]) Converte o expr e o fmt em uma data.
to_timestamp(expr [, fmt]) Converte o expr com o fmt em um carimbo de data/hora.
try_cast(tipo expr AS) Converte o valor expr no tipo de dados de destino type com segurança.
try_to_timestamp(expr [, fmt]) Converte o expr com o fmt em um carimbo de data/hora com segurança.

Funções de data, timestamp e intervalo

Use as seguintes funções para trabalhar com datas, marcas temporais e intervalos:

Função Description
adicionar_meses(data_inicial, num_meses) Retorna a data que está num_months após start_date.
curdate() Retorna a data atual.
current_date() Retorna a data atual.
current_timestamp() Retorna o timestamp atual.
current_timezone() Retorna o fuso horário local da sessão atual.
date_add(data_inicio, num_dias) Retorna a data que está num_days após start_date.
date_diff(endDate, startDate) Retorna o número de dias de startDate a endDate.
date_format(expr, fmt) Converte um carimbo de data/hora em uma cadeia de caracteres no formato fmt.
date_part(campo, origem) Extrai uma parte específica, como ano, mês ou dia, de uma data ou carimbo de data/hora.
date_sub(start_date, num_days) Retorna a data que é num_days antes de start_date.
date_trunc(fmt, fonte) Truncar uma data ou timestamp para uma unidade especificada, como ano ou mês.
dateadd(unidade, valor, expressão) Adiciona o intervalo de tempo especificado a uma data ou marca temporal.
datediff(endDate, startDate) Retorna o número de dias de startDate a endDate.
day(expr) Retorna o dia do mês da data ou timestamp.
dayname(expr) Retorna o nome do dia da semana a partir da data ou timestamp.
dayofmonth(expr) Retorna o dia do mês da data ou timestamp.
dayofweek(expr) Retorna o dia da semana da data ou carimbo de data/hora (1 = domingo, 7 = sábado).
dayofyear(expr) Retorna o dia do ano da data ou timestamp.
extrair(campo DE fonte) Extrai uma parte da data ou carimbo de data/hora.
from_unixtime(unix_time [, fmt]) Converte o número de segundos da época unix em um carimbo de data/hora.
from_utc_timestamp(timestamp, fuso horário) Interpreta o carimbo de data/hora fornecido como UTC e converte para o fuso horário fornecido.
getdate() Retorna o timestamp atual.
hour(expr) Retorna o componente de hora do carimbo de data/hora.
last_day(expr) Retorna o último dia do mês ao qual a data ou carimbo de data/hora pertence.
make_date(ano, mês, dia) Cria uma data dos campos ano, mês e dia.
make_timestamp(ano, mês, dia, hora, min, s [, fuso horário]) Cria um timestamp a partir do ano, mês, dia, hora, minuto, segundo e, opcionalmente, do campo de fuso horário.
minute(expr) Retorna o componente de minuto do timestamp.
month(expr) Retorna o componente de mês da data ou timestamp.
months_between(timestamp1, timestamp2 [, roundOff]) Retorna o número de meses entre timestamp1 e timestamp2.
next_day(start_date, day_of_week) // Próximo dia a partir da data de início, dia da semana Retorna a primeira data que é posterior a start_date e nomeada como day_of_week.
now() Retorna o timestamp atual.
quarter(expr) Retorna o trimestre do ano para a data ou timestamp (1 a 4).
second(expr) Retorna o segundo componente do timestamp.
timediff(endDate, startDate) Retorna a diferença entre dois carimbos de data/hora medidos em unidades.
timestamp_micros(microssegundos) Cria um carimbo de data/hora a partir do número de microssegundos desde o início da era Unix.
timestamp_millis(milissegundos) Cria um timestamp a partir do número de milissegundos desde a era Unix.
timestamp_seconds(segundos) Cria um timestamp do número de segundos desde a era Unix.
timestampadd(unit, value, timestamp) Adiciona o intervalo de tempo especificado a um timestamp.
timestampdiff(unidade, início, fim) Retorna a diferença entre dois carimbos de data/hora medidos em unidades.
to_date(expr [, fmt]) Converte o expr e o fmt em uma data.
to_timestamp(expr [, fmt]) Converte o expr com o fmt em um carimbo de data/hora.
to_unix_timestamp(expr [, fmt]) Retorna o carimbo de data/hora Unix do tempo determinado.
to_utc_timestamp(timestamp, fuso horário) Interpreta o carimbo de data/hora fornecido no fuso horário especificado e o converte para UTC.
trunc(expr, fmt) Retorna \expr com o segmento do tempo do dia truncado para a unidade especificada pelo modelo de formato \fmt.
unix_micros(timestamp) Retorna o número de microssegundos desde a época do Unix.
unix_millis(carimbo de data/hora) Retorna o número de milissegundos desde a época do Unix.
unix_seconds(timestamp) Retorna o número de segundos desde a época do Unix.
unix_timestamp([expr [, fmt]]) Retorna o carimbo de data/hora Unix do tempo determinado.
weekday(expr) Retorna o dia da semana a partir da data ou do timestamp (0 = segunda-feira, 6 = domingo).
weekofyear(expr) Retorna a semana do ano a partir da data ou do timestamp.
year(expr) Retorna o componente de ano da data ou do timestamp.

Funções de cadeia de caracteres

Use as funções a seguir para transformar cadeias de caracteres. Para transformar strings de data e hora, consulte as funções Cast.

Função Description
base64(expr) Converte o argumento em uma cadeia de caracteres base64.
char(expr) Retorna o caractere no ponto de código UTF-16 fornecido.
charindex(substr, str [, pos]) Retorna a posição da primeira ocorrência de substr em str após a posição pos.
concat(expr1, expr2 [, ...]) Retorna a concatenação dos argumentos.
concat_ws(sep [, expr1 [, ...]]) Retorna a concatenação de cadeias de caracteres separadas por sep.
contains(left, right) Retorna true se right for encontrado em left.
convert_timezone(sourceTz, targetTz, sourceTs) Converte o carimbo de data/hora sourceTs do sourceTz fuso horário para targetTz fuso horário.
decode(expr, charSet) Converte binário expr em uma string usando a codificação do conjunto de caracteres charSet.
endswith(left, right) Retorna true se left termina com right.
find_in_set(str, str_array) Retorna o índice (baseado em 1) da cadeia de caracteres fornecida na lista delimitada por vírgulas.
format_number(expr, scale) Formatar expr como #,###,###.##, arredondado a scale casas decimais.
format_string(format, expr [, ...]) Retorna uma cadeia de caracteres formatada de cadeias de caracteres de formato de estilo printf.
hex(expr) Converte expr para hexadecimal.
initcap(str) Retorna str com a primeira letra de cada palavra em letras maiúsculas.
instr(str, substr) Retorna a posição da primeira ocorrência de substr em str.
lcase(str) Retorna str com todos os caracteres alterados para minúsculas.
left(str, len) Retorna os len primeiros caracteres da sequência de caracteres str.
len(expr) Retorna o comprimento da cadeia de caracteres ou expressão binária.
length(expr) Retorna o comprimento da cadeia de caracteres ou expressão binária.
levenshtein(str1, str2 [, limite]) Retorna a distância Levenshtein entre as duas cadeias de caracteres fornecidas.
locate(substr, str [, pos]) Retorna a posição da primeira ocorrência de substr em str após a posição pos.
lower(str) Retorna str com todos os caracteres alterados para minúsculas.
lpad(str, len [, pad]) Retorna str preenchido à esquerda com pad para atingir um comprimento de len.
ltrim(str [, trimStr]) Remove os caracteres principais de str.
md5(expr) Retorna uma soma de verificação de 128 bits MD5 como uma cadeia de caracteres hex.
parse_url(url, partToExtract [, key]) Extrai uma parte de url.
position(substr, str [, pos]) Retorna a posição da primeira ocorrência de substr em str após a posição pos.
printf(format, expr [, ...]) Retorna uma cadeia de caracteres formatada de cadeias de caracteres de formato de estilo printf.
regexp_count(str, regexp) Retorna o número de vezes que a expressão regular regexp encontra correspondências em str.
regexp_extract(str, regexp [, idx]) Extrai um grupo que corresponde a regexp.
regexp_instr(str, regexp) Retorna a posição da primeira correspondência de regexp na string str.
regexp_replace(str, regexp, rep [, position]) Substitui todas as subcadeias de caracteres de str que correspondem a regexp por rep.
regexp_substr(str, regexp) Retorna a subcadeia de caracteres que corresponde à expressão regular regexp dentro de str.
repeat(str, n) Retorna a cadeia de caracteres que repete strn vezes.
substituir(str, busca [, substituir]) Substitui todas as ocorrências de search por replace em str.
reverse(str) Retorna str com a ordem dos caracteres invertida.
right(str, len) Retorna os len caracteres mais à direita da cadeia de caracteres str.
rtrim([trimStr,] str) Retorna str removendo os caracteres finais.
sha2(expr, bitLength) Retorna a família SHA-2 de funções de hash.
split_part(str, delimitador, partNum) Divide str por delimiter e retorna a parte solicitada.
startswith(esquerda, direita) Retorna true se left começa com right.
substr(str, pos [, len]) Retorna a subcadeia de caracteres de str começando em pos com o comprimento len.
substring(str, pos [, len]) Retorna a subcadeia de caracteres de str começando em pos com o comprimento len.
substring_index(str, delim, count) Retorna a subcadeia de caracteres antes das ocorrências de countdelim.
to_char(expr [, fmt]) Converte expr em uma cadeia de caracteres.
to_number(expr [, fmt]) Converte a cadeia de caracteres expr em um número.
translate(entrada, origem, destino) Substitui os caracteres em input por caracteres correspondentes em from para traduzir to.
trim(str [, trimStr]) Remove caracteres iniciais e finais de str.
ucase(str) Retorna str com todos os caracteres alterados para maiúsculas.
upper(str) Retorna str com todos os caracteres alterados para maiúsculas.
url_encode(str) Codifica str para uso em parâmetros de consulta de URL.

Funções diversas

Também há suporte para as seguintes funções:

Função Description
AGRUPAR SOBRE Calcula valores entre intervalos de tempo ou outros conjuntos ordenados para medidas.
CASE expr { WHEN opt1 THEN res1 } [...] [ELSE def] FIM Retorna resN para a primeira optN, que é igual a expr ou def se não houver correspondência.
CASE { WHEN cond1 THEN res1 } [...] [ELSE def] FIM Retorna resN para o primeiro condN que for avaliado como verdadeiro, ou def se nenhum for encontrado.
coalesce(expr1, expr2 [, ...]) Retorna o primeiro argumento não nulo.
decode(expr, busca, resultado [, busca, resultado]... [, padrão]) Compara cada valor de pesquisa a expr e retorna o resultado correspondente.
get_json_object(json_txt, caminho) Extrai um objeto JSON de json_txt na path especificada.
greatest(expr [, ...]) Retorna o maior valor de todos os parâmetros.
hash(expr1 [, expr2 ...]) Retorna um valor hash dos argumentos.
if(condition, valor_verdadeiro, valor_falso) Retorna true_value se condition estiver true, caso contrário, retornará false_value.
iff(condicao, valor_verdadeiro, valor_falso) Retorna true_value se condition estiver true, caso contrário, retornará false_value.
ifnull(expr1, expr2) Retornará expr2 se expr1 for null, caso contrário, expr1.
json_array_length(jsonArray) Retorna o número de elementos na matriz JSON mais externa.
least(expr [, ...]) Retorna o menor valor de todos os parâmetros.
monotonically_increasing_id() Retorna inteiros de 64 bits que aumentam de maneira monotônica.
nullif(expr1, expr2) Retorna NULL se expr1 for igual expr2, caso contrário, retornará expr1.
nvl(expr1, expr2) Retornará expr2 se expr1 for NULL, caso contrário, expr1.
nvl2(expr1, expr2, expr3) Retorna expr2 se expr1 não for NULL, ou expr3 caso contrário.
schema_of_json(json [, opções]) Retorna o esquema no formato DDL da cadeia de caracteres JSON.