Partilhar via


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

Esta página fornece uma referência completa de todas as funções suportadas 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 agregadas

Todas as medidas calculadas devem ser agregadas. As seguintes operações de agregação são suportadas:

Observação

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

Função Description
any(expr) Retorna true se pelo menos um valor de expr no grupo for true.
any_value(expr) Retorna algum valor de expr para um grupo de linhas.
approx_count_distinct(expr[, relativeSD]) Devolve o número estimado de valores distintos em expr.
approx_percentile ([TODOS | DISTINTO] expr, percentil [, precisão]) Retorna o valor aproximado do percentil de expr no percentil especificado.
Média (EXPR) Devolve a média calculada numa coluna ou expressão.
bool_or(expr) Retorna true se pelo menos um valor de expr é true.
corr(expr1, expr2) Devolve o coeficiente de correlação de Pearson entre expr1 e expr2.
count(*) Devolve o número de linhas num grupo.
contar(DISTINCT expr) Devolve o número de linhas exclusivas num grupo.
count_if(expr) Devolve a contagem de linhas que satisfazem uma determinada condição.
primeiro(expr [, ignoreNull]) Devolve o primeiro valor de expr para um grupo.
first_value(expr [, ignoreNull]) Devolve o primeiro valor de expr para um grupo.
last(expr [, ignoreNull]) Devolve o último valor de expr para o grupo.
last_value(expr [, ignoreNull]) (último_valor(expr [, ignorarNulos])) Devolve o último valor de expr para o grupo.
listagg(expr [, delimitador]) Retorna a concatenação de valores não nulos no grupo.
max(expr) Devolve o valor máximo numa coluna ou expressão.
max_by(expr1, expr2) Devolve o valor de expr1 associado com o valor máximo de expr2.
média(expr) Devolve a média calculada numa coluna ou expressão.
mediana (expr) Devolve a mediana de um conjunto de valores.
min(expr) Devolve o valor mínimo numa coluna ou expressão.
min_by(expr1, expr2) Devolve o valor de expr1 associado com o valor mínimo de expr2.
modo(expr [, determinístico]) Devolve o valor mais frequente para expr.
percentil (expr, percentagem [, frequência]) Devolve o valor exato do percentil expr ao percentil especificado num grupo.
percentile_approx(expr, percentagem [, precisão]) Retorna o valor aproximado do percentil de expr no percentil especificado.
regr_slope(y, x) Devolve a inclinação da linha de regressão linear para pares não nulos num grupo.
some(expr) Retorna true se pelo menos um valor de expr no grupo for true.
DST (EXPR) Devolve o desvio padrão de um conjunto de valores.
stddev(expr) Devolve o desvio padrão de um conjunto de valores.
stddev_pop(expr) Devolve o desvio padrão da população de um conjunto de valores.
stddev_samp(expr) Devolve o desvio padrão da amostra de um conjunto de valores.
string_agg(expr [, delimitador]) Retorna a concatenação dos valores de cadeia de caracteres que não são nulos dentro do grupo.
sum(expr) Devolve o total de valores numa coluna ou expressão.
variância (expr) Devolve a variância de um conjunto de valores.

Operações aritméticas

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

Funcionamento Description
Expr1 % Expr2 Devolve o restante da divisão expr1 por expr2.
multiplicador * multiplicando Devolve o produto de duas expressões.
expr1 + expr2 Devolve a soma de expr1 e expr2.
+ EXPR Retorna o valor da expressão.
EXPR1 - EXPR2 Devolve a diferença ao subtrair expr2 de expr1.
- EXPR Retorna o valor negado da expressão.
dividendo / divisor Devolve o resultado da divisão do dividendo pelo divisor.
divisor de dividendos div Devolve a parte integral da divisão de dividend por divisor.
abs(expr) Devolve o valor absoluto da expressão numérica.
ACOS (EXPR) Devolve o cosseno inverso (arco cosseno) de expr.
Asin (EXPR) Devolve o seno inverso (arco seno) de expr.
bround(expr [, d]) Devolve expr arredondado para d casas decimais utilizando o modo de arredondamento HALF_EVEN.
ceil (expr) ou teto (expr) Devolve o número inteiro mais pequeno não inferior a expr.
cos(expr) Devolve o cosseno de expr.
exp(expr) Retorna e elevado ao poder de expr.
floor(expr) Devolve o número inteiro maior não superior a expr.
ln(expr) Devolve o logaritmo natural da expressão.
log(base, expr) Devolve o logaritmo de expr com o especificado base.
log10(expr) Devolve o logaritmo de base 10 da expressão.
mod (expr1, expr2) Devolve o restante da divisão expr1 por expr2.
nullifzero(expr) Devolve NULL se expr for 0, caso contrário devolve expr.
pi() Devolve o valor de pi.
pmod(expr1, expr2) Devolve o valor positivo de expr1 mod expr2.
pow(expr1, expr2) ou potência (expr1, expr2) Devolve o resultado de expr1 elevado à potência de expr2.
radianos(expr) Converte graus em radianos.
rand([semente]) Devolve um valor aleatório com distribuição uniforme no intervalo de 0 (inclusive) a 1 (exclusivo).
redondo(expr [, d]) Devolve expr arredondado para d casas decimais utilizando HALF_UP modo de arredondamento.
sinal(expr) Devolve o sinal da expressão numérica.
sen(expr) Devolve o seno de expr.
sqrt(expr) Devolve a raiz quadrada de expr.
try_add(expr1, expr2) Adiciona dois valores. Se ocorrer um erro, retorna NULL.
try_divide(dividendo, divisor) Divide o dividendo pelo divisor. Se ocorrer um erro, retorna NULL.
try_multiply(multiplicador, multiplicando) Multiplica dois números. Se ocorrer um erro, retorna NULL.
try_subtract(expr1, expr2) Subtrai expr2 de expr1. Se ocorrer um erro, retorna NULL.
zeroifnull(expr) Devolve 0 se expr é NULL, caso contrário devolve expr.

Funções e operadores booleanos

Os cálculos personalizados suportam comparação básica e operadores booleanos. Os seguintes operadores e funções são suportados:

Funcionamento Description
expr1 != expr2 Devolve true se expr1 não for igual a expr2.
!expr Lógico que não.
Expr1 & Expr2 Retorna o AND bitwise de expr1 e expr2.
expr1 && expr2 Devolve true se ambos expr1 e expr2 forem 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 Devolve true se expr1 não for igual a expr2.
expr1 < expr2 Retorna true se expr1 for menor que expr2.
expr1 <= expr2 Devolve true se expr1 for menor ou igual a expr2.
expr1 = expr2 Devolve true se expr1 for igual a expr2.
expr1 == expr2 Devolve true se expr1 for igual a expr2.
expr1 > expr2 Devolve true se expr1 for maior que expr2.
expr1 >= expr2 Devolve true se expr1 for maior ou igual a expr2.
expr1 ^ expr2 Devolve o OR exclusivo bit a bit de expr1 e expr2.
expr1 | EXPR2 Retorna o OR bit a bit de expr1 e expr2.
expr1 || EXPR2 Devolve true se pelo menos um dos expr1 ou expr2 for true.
~EXPR Devolve o NÃO bit a bit de expr.
expr1 e expr2 Devolve true se ambos expr1 e expr2 forem true.
expr entre o valor mínimo e máximo Testa se expr está dentro do intervalo especificado (sintaxe especial).
Padrão Str ilike Retorna true se str corresponder a pattern (sem diferenciação de maiúsculas e minúsculas). Também pode ser usado como ilike(str, pattern [, escapeChar]).
expr em (value1, value2, ...) Testa se expr corresponde a algum valor em uma lista (sintaxe especial).
ISNAN(EXPR) Devolve true se expr é NaN (não é um número).
isnotnull(expr) Devolve true se expr não for NULL.
isnull(expr) Devolve true se expr é NULL.
Padrão tipo str Retorna true se str corresponder a pattern. Também pode ser usado como like(str, pattern [, escapeChar]).
não expr Negação lógica (operador de prefixo) Também pode ser usado como not(expr).
expr1 ou expr2 Devolve true se pelo menos um dos expr1 ou expr2 for 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 transmissão

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

Função Description
expr :: tipo Converte o valor expr para o tipo typede dados de destino.
bigint(expr) Converte o valor expr em BIGINT.
Booleano (EXPR) Converte o valor expr em BOOLEAN.
cast (tipo expr AS) Converte o valor expr para o tipo typede dados de destino.
date(expr) Converte o valor expr em DATE.
decimal(expr [, p [, s]]) Projeta 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 para uma data.
to_timestamp(EXPR [, FMT]) Converte o expr com o fmt em um carimbo de data/hora.
try_cast (tipo AS expr) Converte o valor expr para o tipo type de dados de destino com segurança.
try_to_timestamp(expr [, fmt]) Analisa o expr com o fmt para converter com segurança para um carimbo de data/hora.

Funções de data, marca temporal e intervalo

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

Função Description
add_months(start_date, num_months) Devolve a data que é num_months depois de start_date.
Curdate() Devolve a data atual.
current_date() Devolve a data atual.
current_timestamp() Retorna o carimbo de data/hora atual.
date_add(start_date, num_days) Devolve a data que é num_days depois de start_date.
date_diff(DataFim, DataInício) Devolve o número de dias de startDate para endDate.
date_format(EXPR, FMT) Converte um timestamp em uma string no formato fmt.
date_part(campo, fonte) Extrai uma parte específica, como ano, mês ou dia, de um carimbo de data ou hora.
date_sub(start_date, num_days) Devolve a data anterior num_days a start_date.
date_trunc(FMT, fonte) Trunca uma data ou selo de hora para uma unidade de tempo especificada, como ano ou mês.
dateadd(unidade, valor, expr) Adiciona o intervalo de tempo especificado a um carimbo de data ou hora.
datediff(inícioData, fimData) Devolve o número de dias de startDate para endDate.
dia(expr) Devolve o dia do mês de uma data ou de um timestamp.
dayname(expr) Retorna o nome do dia da semana a partir da data ou timestamp.
dias_do_mês(expr) Devolve o dia do mês de uma data ou de um timestamp.
diaDaSemana(expr) Devolve o dia da semana a partir do carimbo de data ou hora (1 = domingo, 7 = sábado).
diadoano(expr) Retorna o dia do ano a partir da data ou timestamp.
extract(campo FROM source) Extrai uma parte da data ou carimbo de hora.
from_unixtime(unix_time [, fmt]) Converte o número de segundos da Unix epoch em uma marcação de data/hora.
from_utc_timestamp(carimbo temporal, fuso horário) Interpreta o carimbo de data/hora fornecido como UTC e converte para o fuso horário determinado.
getdate() Retorna o carimbo de data/hora atual.
hora (expr) Retorna o componente de hora do carimbo de data/hora.
last_day(expr) Devolve o último dia do mês ao qual o timestamp ou a data 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, seg [, fuso horário]) Cria um carimbo de data/hora a partir dos campos ano, mês, dia, hora, minuto, segundo e, opcionalmente, fuso horário.
minuto(expr) Retorna o componente minuto do carimbo de data/hora.
mês(expr) Retorna o componente do mês da data ou do carimbo de data/hora.
months_between(timestamp1, timestamp2 [, roundOff]) Devolve o número de meses entre timestamp1 e timestamp2.
próximo_dia(data_inicial, dia_da_semana) Retorna a primeira data que é posterior a start_date e é nomeada como day_of_week.
now() Retorna o carimbo de data/hora atual.
trimestre (expr) Devolve o trimestre do ano para a data ou o carimbo de tempo (1 a 4).
segundo (expr) Retorna o segundo componente do carimbo de data/hora.
timediff(fimData, DataInício) Devolve a diferença entre dois carimbos de data/hora expressa em unidades.
timestamp_micros (microssegundos) Cria um carimbo de data/hora a partir do número de microssegundos desde a época do Unix.
timestamp_millis (milissegundos) Cria um carimbo de data/hora a partir do número de milissegundos desde a época do Unix.
timestamp_seconds (segundos) Cria uma marca temporal a partir do número de segundos desde a época Unix.
timestampadd(unidade, valor, timestamp) Adiciona o intervalo de tempo especificado a um timestamp.
timestampdiff(unidade, início, fim) Devolve a diferença entre dois carimbos de data/hora expressa em unidades.
to_date(expr [, fmt]) Converte o expr e o fmt para 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 da hora dada.
to_utc_timestamp(carimbo temporal, fuso horário) Interpreta o timestamp fornecido no fuso horário especificado e converte para UTC.
trunc(expr, fmt) Retorna expr com a parte temporal do dia truncada à unidade especificada pelo modelo de formato fmt.
unix_micros(timestamp) Devolve o número de microssegundos desde a época Unix.
unix_millis(marca temporal) Devolve o número de milissegundos desde a época Unix.
unix_seconds(timestamp) Devolve o número de segundos desde a época Unix.
unix_timestamp([expr [, fmt]]) Retorna o carimbo de data/hora Unix da hora dada.
Dia da semana(EXPR) Devolve o dia da semana a partir do carimbo de data ou hora (0 = segunda-feira, 6 = domingo).
Semana do Ano (EXPR) Devolve a semana do ano a partir da data ou timestamp.
ano(expr) Devolve o componente de ano da data ou do carimbo de data/hora.

Funções de cadeia de caracteres

Use as seguintes funções para transformar cadeias de caracteres. Para transformar cadeias de caracteres datetime, consulte Funções de transmissão.

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(exr1, expr2 [, ...]) Devolve a concatenação dos argumentos.
concat_ws(Sep [, expr1 [, ...]]) Retorna a concatenação de cadeias de caracteres separadas por sep.
contains(left, right) Devolve true se right for encontrado em left.
convert_timezone(sourceTz, targetTz, sourceTs) Converte o carimbo de data/hora sourceTs do fuso horário sourceTz para o fuso horário targetTz.
decodificar (expr, charSet) Traduz binário expr para uma cadeia de caracteres usando a codificação charSet do conjunto de caracteres.
termina com (esquerda, direita) Retorna true se left terminar com right.
find_in_set(str, str_array) Devolve o índice (baseado em 1) da cadeia de caracteres fornecida na lista delimitada por vírgula.
format_number(expr, escala) Formatos expr como #,###,###.##, arredondado para scale casas decimais.
format_string(formato, expr [, ...]) Retorna uma cadeia de caracteres formatada a partir de strings de formato ao estilo printf.
hex (expr) Converte expr em hexadecimal.
initcap(str) Retorna str com a primeira letra de cada palavra em maiúsculas.
instr(str, substr) Devolve a posição da primeira ocorrência de substr in str.
lcase(str) Retorna str com todos os caracteres alterados para minúsculas.
esquerda(texto, len) Retorna os primeiros len caracteres da string 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 [, limiar]) Retorna a distância de Levenshtein entre as duas cadeias de caracteres fornecidas.
localizar(substr, str [, pos]) Retorna a posição da primeira ocorrência de substr em str após a posição pos.
inferior (str) Retorna str com todos os caracteres alterados para minúsculas.
lpad(str, len [, pad]) Retorna str preenchido à esquerda com pad até um comprimento de len.
ltrim(str [, trimStr]) Remove caracteres principais do str.
MD5 (EXPR) Retorna uma soma de verificação MD5 de 128 bits como uma cadeia de caracteres hexadecimal.
parse_url(url, partToExtract [, chave]) Extrai uma parte de url.
posição(substr, str [, pos]) Retorna a posição da primeira ocorrência de substr em str após a posição pos.
printf (formato, expr [, ...]) Retorna uma cadeia de caracteres formatada a partir de strings de formato ao estilo printf.
regexp_count(str, regexp) Retorna o número de vezes que a expressão regular regexp corresponde em str.
regexp_extract(str, regexp [, idx]) Extrai um grupo que corresponde ao regexp.
regexp_instr(string, regexp) Devolve a posição da primeira partida de regexp in str.
regexp_replace(str, regexp, rep [, posição]) Substitui todas as substrings de str que correspondem a regexp por rep.
regexp_substr(força, regexp) Retorna a substring que corresponde à expressão regular regexp dentro de str.
repetir(str, n) Retorna a cadeia de caracteres que repete strn vezes.
replace(str, search [, substituir]) Substitui todas as ocorrências de search com replace em str.
reverso(str) Retorna str com a ordem dos caracteres invertida.
direita (força, len) Retorna os últimos len caracteres à direita da cadeia de caracteres str.
rtrim([trimStr,] str) Retorna str com caracteres finais removidos.
sha2(expr, bitLength) Retorna a família SHA-2 de funções hash.
split_part(str, delimitador, partNum) Divide str por delimiter e devolve a parte solicitada.
startswith(esquerda, direita) Retorna true se left começar com right.
substr(str, pos [, len]) Retorna a substring de str a partir de pos com comprimento len.
substring(str, pos [, len]) Retorna a substring de str a partir de pos com comprimento len.
substring_index(str, delim, count) Retorna a substring antes das count ocorrências de delim.
to_char(expr [, fmt]) Converte expr para uma string.
to_number(EXPR [, FMT]) Converte string expr em um número.
traduzir(entrada, de, para) Traduz input substituindo caracteres em from por caracteres correspondentes em to.
trim(str [, trimStr]) Remove caracteres no início e no fim do str.
ucase(str) Retorna str com todos os caracteres alterados para maiúsculas.
superior (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

As seguintes funções também são suportadas:

Função Description
AGREGAR MAIS Calcula valores em intervalos de tempo ou outros conjuntos ordenados para medidas.
CASE expr { QUANDO opt1 ENTÃO res1 } [...] [ELSE def] FIM Devolve resN para o primeiro optN que é igual a expr ou def se nenhum corresponder.
CASO { QUANDO cond1 ENTÃO res1 } [...] [ELSE def] FIM Retorna resN para o primeiro condN que avalia como verdadeiro, ou def se nenhum for encontrado.
coalesce (expr1, expr2 [, ...]) Retorna o primeiro argumento não nulo.
decodificar(expr, pesquisar, resultado [, pesquisar, resultado]... [, padrão]) Compara expr com cada valor de pesquisa e retorna o resultado correspondente.
get_json_object(json_txt, caminho) Extrai um objeto JSON de json_txt na localização indicada path.
máximo(expr [, ...]) Retorna o maior valor de todos os parâmetros.
hash(expr1 [, expr2 ...]) Retorna um valor de hash dos argumentos.
if(condição, valor_verdadeiro, valor_falso) Devolve true_value se condition é true, caso contrário devolve false_value.
iff(condição, valor_verdadeiro, valor_falso) Devolve true_value se condition é true, caso contrário devolve false_value.
ifnull(expr1, expr2) Retorna expr2 se expr1 é null, ou expr1 de outra forma.
json_array_length(jsonArray) Retorna o número de elementos na matriz JSON mais externa.
mínimo(expr [, ...]) Retorna o menor valor de todos os parâmetros.
monotonically_increasing_id() Retorna números inteiros de 64 bits monotonicamente crescentes.
nullif(expr1, expr2) Devolve NULL se expr1 for igual a expr2, caso contrário devolve expr1.
NVL (expr1, expr2) Retorna expr2 se expr1 é NULL, ou expr1 de outra forma.
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.