Pular para o conteúdo principal

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 AI/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:

nota

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

As funções de agregação também podem ser usadas com a sintaxe de função de janela (cláusula OVER) ou com a sintaxe AGGREGATE OVER para criar expressões de nível de detalhe.

Função

Descrição

qualquer(expr)

Retorna true se pelo menos um valor de expr no grupo for true.

qualquer_valor(expr)

Retorna algum valor de expr para um grupo de linhas.

contagem_aproximada_distinta(expr[, desvio_padrão_relativo])

Retorna o número estimado de valores distintos em expr.

percentil_aprox.([TODOS | DISTINTOS] expr, percentil [, precisão])

Retorna o valor percentil aproximado de expr no percentil especificado.

média(expr)

Retorna a média calculada em uma coluna ou expressão.

bool_ou(expr)

Retorna true se pelo menos um valor de expr for true.

corr(expr1, expr2)

Retorna o coeficiente de correlação de Pearson entre expr1 e expr2.

contar(*)

Retorna o número de linhas em um grupo.

contar(EXPR DISTINTO)

Retorna o número de linhas únicas em um grupo.

contar_se(expr)

Retorna a quantidade de linhas que satisfazem uma determinada condição.

primeiro(expr [, ignoreNull])

Retorna o primeiro valor de expr para um grupo.

primeiro_valor(expr [, ignoreNull])

Retorna o primeiro valor de expr para um grupo.

último(expr [, ignoreNull])

Retorna o último valor de expr para o grupo.

último_valor(expr [, ignoreNull])

Retorna o último valor de expr para o grupo.

listagg(expr [, delimitador])

Retorna a concatenação dos valores não nulos no grupo.

máximo(expr)

Retorna o valor máximo em uma coluna ou expressão.

max_por(expr1, expr2)

Retorna o valor de expr1 associado ao valor máximo de expr2.

média(expr)

Retorna a média calculada em uma coluna ou expressão.

mediana(expr)

Retorna a mediana de um conjunto de valores.

min(expr)

Retorna o valor mínimo em uma coluna ou expressão.

min_por(expr1, expr2)

Retorna o valor de expr1 associado ao valor mínimo de expr2.

modo(expr [, determinístico ])

Retorna o valor mais frequente para expr.

percentil(expr, porcentagem [, frequência])

Retorna o valor percentil exato de expr no percentil especificado em um grupo.

percentil_aproximado(expr, porcentagem [, precisão])

Retorna o valor percentil aproximado de expr no percentil especificado.

inclinação_regr(y, x)

Retorna a inclinação da reta de regressão linear para pares não nulos em um grupo.

algum(expr)

Retorna true se pelo menos um valor de expr no grupo for true.

std(expr)

Retorna o desvio padrão de um conjunto de valores.

desvio padrão(expr)

Retorna o desvio padrão de um conjunto de valores.

stddev_pop(expr)

Retorna o desvio padrão populacional de um conjunto de valores.

stddev_samp(expr)

Retorna o desvio padrão da amostra de um conjunto de valores.

string_agg(expr [, delimitador])

Retorna a concatenação dos valores de string não nulos no grupo.

soma(expr)

Retorna o total dos valores em uma coluna ou expressão.

variância(expr)

Retorna a variância de um conjunto de valores.

Funções da janela

As funções de janela escalar, nativas do SQL, realizam cálculos em um conjunto de linhas relacionadas à linha atual. Além das funções de agregação, as funções de janela escalar podem ser usadas com funções de classificação e analíticas. Para obter detalhes sobre a sintaxe e o uso, consulte Funções de janela.

Funções de janela de classificação

Todas as funções de janela de classificação são suportadas em cálculos personalizados. Essas funções atribuem classificações ou posições às linhas dentro de uma partição. Para obter a sintaxe completa e exemplos, consulte funções de janela de classificação.

Função

Descrição

posto_denso()

Retorna a classificação de um valor em comparação com todos os valores na partição.

ntile(n)

Divide as linhas de cada partição da janela em n buckets que variam de 1 a no máximo n.

classificação_percentual()

Calcular a classificação percentual de um valor dentro da partição.

classificação()

Retorna a classificação de um valor em comparação com todos os valores na partição.

número_da_linha()

Atribui um número sequencial único a cada linha, começando com um, de acordo com a ordem das linhas dentro da partição da janela.

Funções de janela analítica

Todas as funções de janela analítica são suportadas em cálculos personalizados. Essas funções acessam valores de outras linhas na janela. Para obter a sintaxe completa e exemplos, consulte funções de janela analítica.

Função

Descrição

distribuição_cume()

Retorna a posição de um valor em relação a todos os valores na partição.

atraso(expr [, deslocamento [, default]])

Retorna o valor de expr de uma linha anterior dentro da partição.

lead(expr [, offset [, default]])

Retorna o valor de expr de uma linha subsequente dentro da partição.

nth_value(expr, offset [, ignoreNulls])

Retorna o valor de expr em um offset específico na janela.

Operações aritméticas

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

Operação

Descrição

expr1 % expr2

Retorna o resto da divisão de 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.

dividendo div divisor

Retorna a parte inteira 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 (arco seno) de expr.

bround(expr [, d])

Retorna expr arredondado para d casas decimais usando o modo de arredondamento HALF_EVEN.

teto(expr) ou teto(expr)

Retorna o menor inteiro não menor que expr.

cosseno(expr)

Retorna o cosseno de expr.

exp(expr)

Retorna e elevado à potência de expr.

piso(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 base especificado.

log10(expr)

Retorna o logaritmo na base 10 da expressão.

mod(expr1, expr2)

Retorna o resto da divisão de expr1 por expr2.

nullifzero(expr)

Retorna NULL se expr for 0, caso contrário retorna expr.

pi()

Retorna o valor de pi.

pmod(expr1, expr2)

Retorna o valor positivo de expr1 mod expr2.

pow(expr1, expr2) ou potência(expr1, expr2)

Retorna o resultado de expr1 elevado à potência de expr2.

radianos(expr)

Converte graus em radianos.

rand([semente])

Retorna um valor aleatório com distribuição uniforme no intervalo de 0 (inclusive) a 1 (exclusive).

arredondar(expr [, d])

Retorna expr arredondado para d casas decimais usando o modo de arredondamento HALF_UP.

sinal(expr)

Retorna o sinal da expressão numérica.

sin(expr)

Retorna o seno de expr.

raiz quadrada(expr)

Retorna a raiz quadrada de expr.

tente_adicionar(expr1, expr2)

Soma dois valores. Se ocorrer um erro, retorna NULL.

tente_dividir(dividendo, divisor)

Divide o dividendo pelo divisor. Se ocorrer um erro, retorna NULL.

tente_multiplicar(multiplicador, multiplicando)

Multiplica dois números. Se ocorrer um erro, retorna NULL.

tente_subtrair(expr1, expr2)

Subtrai expr2 de expr1. Se ocorrer um erro, retorna NULL.

zeroifnull(expr)

Retorna 0 se expr for NULL, caso contrário retorna expr.

Funções e operadoresBoolean

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

Operação

Descrição

expr1 != expr2

Retorna true se expr1 não for igual a expr2.

!expr

Não faz sentido lógico.

expr1 e expr2

Retorna o AND bit a bit de expr1 e expr2.

expr1 e expr2

Retorna true se ambos expr1 e expr2 forem true.

expr1 <=> expr2

Retorna o mesmo resultado que o operador de igualdade 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 OU 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 for true.

~expr

Retorna o resultado da operação NOT bit a bit de expr.

expr1 e expr2

Retorna true se ambos expr1 e expr2 forem true.

expressão entre inferior e superior

Verifica se expr está dentro do intervalo especificado (sintaxe especial).

padrão semelhante a str

Retorna true se str corresponder pattern (sem distinção entre maiúsculas e minúsculas). Também pode ser usado como ilike(str, pattern [, escapeChar]).

expressão em (valor1, valor2, ...)

Testa se expr corresponde a algum valor em uma lista (sintaxe especial).

isnan(expr)

Retorna true se expr for NaN (não for um número).

não é nulo(expr)

Retorna true se expr não for NULL.

isnull(expr)

Retorna true se expr for NULL.

padrão semelhante a str

Retorna true se str corresponder a pattern. Também pode ser usado como like(str, pattern [, escapeChar]).

não expresso

Negação lógica (operador de prefixo). Também pode ser usado como not(expr).

expr1 ou expr2

Retorna true se pelo menos um de 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 elenco

Utilize as seguintes funções para converter valores para um tipo específico:

Função

Descrição

expr :: tipo

Converte o valor expr para o tipo de dados de destino type.

bigint(expr)

Converte o valor expr para BIGINT.

Booleano(expr)

Converte o valor expr para BOOLEAN.

cast(expr AS tipo)

Converte o valor expr para o tipo de dados de destino type.

data(expr)

Converte o valor expr para DATE.

decimal(expr [, p [, s]])

Converte o valor expr para DECIMAL com precisão p e escala s.

duplo(expr)

Converte o valor expr para DOUBLE.

float(expr)

Converte o valor expr para FLOAT.

int(expr)

Converte o valor expr para INT.

strings(expr)

Converte o valor expr para STRING.

timestamp(expr)

Converte o valor expr para TIMESTAMP.

to_date(expr [, fmt])

Converte o expr com o fmt em uma data.

para_carimbo_de_data(expr [, fmt])

Converte o expr com o fmt em um carimbo de data/hora.

try_cast(expr AS tipo)

Converte o valor expr para o tipo de dados de destino type de forma segura.

tente_para_carimbo_de_data_hora(expr [, fmt])

Analisa o expr com o fmt para um carimbo de data/hora de forma segura.

Funções de data, hora e intervalo

Utilize as seguintes funções para trabalhar com datas, registros de data e hora e intervalos:

Função

Descrição

adicionar_meses(data_inicial, número_de_meses)

Retorna a data que é num_months depois de start_date.

curdate()

Retorna a data atual.

data_atual()

Retorna a data atual.

carimbo_de_data_atual()

Retorna o carimbo de data/hora atual.

fuso_horário_atual()

Retorna o fuso horário local da sessão atual.

adicionar_data(data_inicial, número_de_dias)

Retorna a data que é num_days depois de start_date.

diferença_data(data_fim, data_início)

Retorna o número de dias de startDate a endDate.

formato_da_data(expr, fmt)

Converte um timestamp em uma string no formato fmt.

parte_da_data(campo, fonte)

Extrai uma parte específica, como ano, mês ou dia, de uma data ou registro de data e hora.

date_sub(data_inicial, num_dias)

Retorna a data que é num_days antes de start_date.

truncamento_da_data(fmt, fonte)

Trunca uma data ou um registro de data e hora para uma unidade específica, como ano ou mês.

dateadd(unidade, valor, expressão)

Adiciona o intervalo de tempo especificado a uma data ou registro de data e hora.

datediff(dataFinal, dataInicial)

Retorna o número de dias de startDate a endDate.

dia(expr)

Retorna o dia do mês a partir da data ou do registro de data e hora.

nome do dia(expr)

Retorna o nome do dia da semana a partir da data ou do registro de hora.

dia do mês (expr)

Retorna o dia do mês a partir da data ou do registro de data e hora.

dia da semana (expr)

Retorna o dia da semana a partir da data ou do horário (1 = domingo, 7 = sábado).

dia do ano (expr)

Retorna o dia do ano a partir da data ou do registro de hora.

extrair(campo DA fonte)

Extrai uma parte da data ou do registro de data e hora.

from_unixtime(unix_time [, fmt])

Converte o número de segundos da época Unix para um timestamp.

from_utc_timestamp(timestamp, timezone)

Interpreta o carimbo de data/hora fornecido como UTC e o converte para o fuso horário especificado.

obterdata()

Retorna o carimbo de data/hora atual.

hora(expr)

Retorna a componente de hora do carimbo de data/hora.

último_dia(expr)

Retorna o último dia do mês a que a data ou o registro de data e hora pertence.

criar_data(ano, mês, dia)

Cria uma data a partir dos campos ano, mês e dia.

criar_carimbo_de_data_hora(ano, mês, dia, hora, min, seg [, fuso_horário])

Cria um registro de data e hora a partir dos campos de ano, mês, dia, hora, minuto, segundo e, opcionalmente, fuso horário.

minuto(expr)

Retorna o componente de minutos do registro de data e hora.

mês(expr)

Retorna o componente de mês da data ou do registro de data e hora.

meses_entre(timestamp1, timestamp2 [, arredondamento])

Retorna 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.

agora()

Retorna o carimbo de data/hora atual.

trimestre(expr)

Retorna o trimestre do ano correspondente à data ou ao horário (de 1 a 4).

segundo(expr)

Retorna o segundo componente do carimbo de data/hora.

timediff(dataFinal, dataInicial)

Retorna a diferença entre dois registros de data e hora, medida em unidades.

timestamp_micros(microssegundos)

Cria um registro de data e hora a partir do número de microssegundos desde a época Unix.

timestamp_millis(milissegundos)

Cria um registro de data e hora a partir do número de milissegundos desde a época Unix.

timestamp_segundos(segundos)

Cria um registro de data e hora a partir do número de segundos decorridos desde a época Unix.

timestampadd(unidade, valor, timestamp)

Adiciona o intervalo de tempo especificado a um registro de data e hora.

timestampdiff(unidade, começo, fim)

Retorna a diferença entre dois registros de data e hora, medida em unidades.

to_date(expr [, fmt])

Converte o expr com o fmt em uma data.

para_carimbo_de_data(expr [, fmt])

Converte o expr com o fmt em um carimbo de data/hora.

to_unix_timestamp(expr [, fmt])

Retorna o timestamp Unix do horário fornecido.

para_carimbo_de_data_utc(carimbo_de_data_hora, 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 a parte do dia correspondente ao tempo truncada para a unidade especificada pelo modelo de formato fmt.

unix_micros(timestamp)

Retorna o número de microssegundos desde a época Unix.

unix_millis(timestamp)

Retorna o número de milissegundos desde a época Unix.

segundos_unix(timestamp)

Retorna o número de segundos desde a época Unix.

unix_timestamp([expr [, fmt]])

Retorna o timestamp Unix do horário fornecido.

dia da semana (expr)

Retorna o dia da semana a partir da data ou do horário (0 = segunda-feira, 6 = domingo).

semana do ano (expr)

Retorna a semana do ano a partir da data ou do registro de data e hora.

ano(expr)

Retorna o componente do ano da data ou do registro de data e hora.

funções de strings

Utilize as seguintes funções para transformar strings. Para transformar strings de data e hora, consulte Funções de conversão.

Função

Descrição

base64(expressão)

Converte o argumento em uma string 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 strings separadas por sep.

contém(esquerda, direita)

Retorna true se right for encontrado em left.

converter_fuso_horário(origemTz, destinoTz, origemTs)

Converte o carimbo de data/hora sourceTs do fuso horário sourceTz para o fuso horário targetTz .

decodificar(expr, charSet)

Converte o binário expr em uma string usando a codificação de conjunto de caracteres charSet.

termina com (esquerda, direita)

Retorna true se left terminar com right.

encontrar_no_conjunto(str, matriz_str)

Retorna o índice (base 1) das strings fornecidas na lista delimitada por vírgulas.

format_number(expr, escala)

Formata expr como #,###,###.##, arredondado para scale casas decimais.

format_string(format, expr [, ...])

Retorna uma string formatada a partir de strings de formatação no estilo printf.

hexadecimal(expr)

Converte expr para hexadecimal.

initcap(str)

Retorna str com a primeira letra de cada palavra em maiúscula.

instr(str, substr)

Retorna a posição da primeira ocorrência de substr em str.

lcase(str)

Retorna str com todos os caracteres convertidos para minúsculas.

esquerda(str, len)

Retorna os len caracteres mais à esquerda das strings str.

len(expr)

Retorna o comprimento das strings ou da expressão binária.

comprimento(expr)

Retorna o comprimento das strings ou da expressão binária.

levenshtein(str1, str2 [, limite])

Retorna a distância de Levenshtein entre as duas strings fornecidas.

localizar(substr, str [, pos])

Retorna a posição da primeira ocorrência de substr em str após a posição pos.

menor(str)

Retorna str com todos os caracteres convertidos para minúsculas.

lpad(str, len [, pad])

Retorna str preenchido à esquerda com pad até um comprimento de len.

ltrim(str [, trimStr])

Remove os caracteres iniciais de str.

md5(expr)

Retorna um checksum MD5 de 128 bits como uma string hexadecimal.

parse_url(url, partToExtract [, key])

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 string formatada a partir de strings de formatação no 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 a regexp.

regexp_instr(str, regexp)

Retorna a posição da primeira correspondência de regexp em str.

regexp_replace(str, regexp, rep [, position])

Substitui todas as substrings de str que correspondem a regexp por rep.

regexp_substr(str, regexp)

Retorna a substring que corresponde à expressão regular regexp dentro de str.

repetir(str, n)

Retorna as strings que se repetem str n vezes.

substituir(str, pesquisar [, substituir])

Substitui todas as ocorrências de search por replace em str.

reverso(str)

Retorna str com a ordem dos caracteres invertida.

direita(str, len)

Retorna os len caracteres mais à direita das strings str.

rtrim([trimStr,] str)

Retorna str com os caracteres finais removidos.

sha2(expr, bitLength)

Retorna a família de funções hash SHA-2.

dividir_parte(str, delimitador, número_parte)

Divide str por delimiter e retorna a parte solicitada.

começa com (esquerda, direita)

Retorna true se left começar com right.

substr(str, pos [, len])

Retorna a substring de str começando em pos com comprimento len.

substring(str, pos [, len])

Retorna a substring de str começando em pos com comprimento len.

substring_index(str, delim, count)

Retorna a substring antes de count ocorrências de delim.

to_char(expr [, fmt])

Converte expr em uma string.

to_number(expr [, fmt])

Converte strings expr em um número.

traduzir(entrada, de, para)

Traduz input substituindo os caracteres em from pelos caracteres correspondentes em to.

aparar(str [, apararStr])

Remove os caracteres iniciais e finais de str.

ucase(str)

Retorna str com todos os caracteres convertidos para maiúsculas.

superior(str)

Retorna str com todos os caracteres convertidos 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

Descrição

AGREGADO SOBRE

Calcula valores em intervalos de tempo ou outros conjuntos ordenados para medidas.

CASO expr { QUANDO opt1 ENTÃO res1 } [...] [SENÃO def] FIM

Retorna resN para o primeiro optN que é igual expr ou def se nenhum corresponder.

CASO { QUANDO cond1 ENTÃO res1 } [...] [SENÃO def] FIM

Retorna resN para o primeiro condN avaliado como verdadeiro, ou def se nenhum for encontrado.

coalesce(expr1, expr2 [, ...])

Retorna o primeiro argumento não nulo.

decodificar(expr, pesquisa, resultado [, pesquisa, resultado]... [, default])

Compara expr com cada valor de pesquisa e retorna o resultado correspondente.

obter_objeto_json(json_txt, caminho)

Extrai um objeto JSON de json_txt no path especificado.

maior(expr [, ...])

Retorna o maior valor entre todos os parâmetros.

hash(expr1 [, expr2 ...])

Retorna um valor hash dos argumentos.

se(condição, valor_verdadeiro, valor_falso)

Retorna true_value se condition for true, caso contrário retorna false_value.

se(condição, valor_verdadeiro, valor_falso)

Retorna true_value se condition for true, caso contrário retorna false_value.

se nulo(expr1, expr2)

Retorna expr2 se expr1 for null, ou expr1 caso contrário.

json_array_length(jsonArray)

Retorna o número de elementos no array JSON mais externo.

menor(expr [, ...])

Retorna o menor valor entre todos os parâmetros.

id_monotonicamente_crescente()

Retorna números inteiros de 64 bits que aumentam monotonicamente.

nullif(expr1, expr2)

Retorna NULL se expr1 for igual a expr2, caso contrário retorna expr1.

nvl(expr1, expr2)

Retorna expr2 se expr1 for NULL, ou expr1 caso contrário.

nvl2(expr1, expr2, expr3)

Retorna expr2 se expr1 não for NULL, ou expr3 caso contrário.

esquema_de_json(JSON [, opções])

Retorna o esquema no formato DDL das strings JSON .