Funções

Há vários tipos de funções que você pode usar em expressões.

Tópicos:

Funções Analíticas

As funções analíticas permitem que você explore dados usando modelos, como previsão, linha de tendência e cluster. Como alternativa, você pode arrastar e soltar funções analíticas para o editor de pastas de trabalho.

Como alternativa, você pode adicionar previsões, linhas de tendências e clusters a uma pasta de trabalho selecionando-os na guia Funções Analíticas do Painel de Dados no editor de pastas de trabalho. Consulte Adicionar Funções de Análise Estatística a Visualizações.

Função Exemplo Descrição Sintaxe

CLUSTER

CLUSTER((product, company), (billed_quantity, revenue), 'clusterName', 'algorithm=k-means;numClusters=%1;maxIter=%2;useRandomSeed=FALSE;enablePartitioning=TRUE', 5, 10)

Coleta um conjunto de registros em grupos com base em uma ou mais expressões de entrada usando K-Means ou Cluster Hierárquico.

CLUSTER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

FORECAST

Exemplo de Previsão de Receita por Dia

Este exemplo seleciona a previsão da receita por dia.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target,
("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Exemplo de Previsão de Receita por Ano e Trimestre

Este exemplo seleciona a previsão da receita por ano e trimestre.

FORECAST("A - Sample Sales"."Base Facts"."1- Revenue",
("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue

Cria um modelo de série de tempo da medida especificada sobre a série usando Suavização Exponencial (ETS) ou ARIMA ou ARIMA Sazonal. Essa função gera a previsão de um conjunto de períodos conforme especificado pelo argumento numPeriods.

Consulte também as Opções adicionais de Função FORECAST a seguir.

FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])

Em que:

  • measure representa a medida a ser prevista, por exemplo, dados de receita.

  • series representa o nível de tempo usado para criar o modelo de previsão. A série é uma lista de uma ou mais colunas de dimensão de tempo. Se você omitir series, o nível de tempo será determinado com base na consulta.

  • output_column_name representa os nomes de coluna válidos forecast, low, high e predictionInterval.

  • opções representa uma lista de strings de pares de nome/valor separadas por um ponto-e-vírgula (;). O valor pode incluir %1 ... %N especificado em runtime_binded_options.

  • runtime_binded_options representa uma lista de colunas e opções separadas por vírgulas. Os valores dessas colunas e opções são avaliados e resolvidos durante o tempo de execução de consulta individual.

Consulte também as Opções adicionais de Função FORECAST a seguir.

OUTLIER

OUTLIER((product, company), (billed_quantity, revenue), 'isOutlier', 'algorithm=kmeans')

Classifica um registro como Outlier com base em uma ou mais expressões de entrada usando K-Médias ou Cluster Hierárquico ou Algoritmos de detecção de Discrepância Multivariada.

OUTLIER((dimension_expr1 , ... dimension_exprN), (expr1, ... exprN), output_column_name, options, [runtime_binded_options])

REGR

REGR(revenue, (discount_amount), (product_type, brand), 'fitted', '')

Ajusta um modelo linear e retorna o modelo ou os valores ajustados. Essa função pode ser usada para ajustar uma curva linear em duas medidas.

REGR(y_axis_measure_expr, (x_axis_expr), (category_expr1, ..., category_exprN), output_column_name, options, [runtime_binded_options])

TRENDLINE

TRENDLINE(revenue, (calendar_year, calendar_quarter, calendar_month) BY (product), 'LINEAR', 'VALUE')

A Oracle recomenda que você aplique uma Linha de tendência usando a propriedade Adicionar Estatísticas ao exibir uma visualização. Consulte Ajustar Propriedades de Visualização.

Ajusta-se a um modelo linear, polinomial ou exponencial e retorna os valores ou o modelo ajustados. numeric_expr representa o valor Y da tendência e series (colunas de tempo) representa o valor X.

TRENDLINE(numeric_expr, ([series]) BY ([partitionBy]), model_type, result_type)

Opções de Função FORECAST A tabela a seguir lista opções disponíveis para uso com a função FORECAST.

Nome da Opção Valores Descrição
numPeriods Número Inteiro O número de períodos para a previsão.
predictionInterval 0 a 100, em que os valores maiores especificam confiança maior O grau de confiabilidade da previsão.
modelType

ETS (Atenuação Exponencial)

SeasonalArima

ARIMA

O modelo a ser usado para previsão.
useBoxCox

TRUE

FALSE

Se for TRUE, use a transformação Box-Cox.
lambdaValue Não se aplica

O parâmetro de transformação Box-Cox.

Ignorar se for NULL ou quando useBoxCox for FALSE.

Caso contrário, os dados serão transformados antes de o modelo ser estimado.

trendDamp

TRUE

FALSE

Isso é específico do modelo Ajuste Exponencial.

Se for TRUE, use a tendência atenuada. Se for FALSE ou NULL, use a tendência não atenuada.

errorType

Não se aplica

Isso é específico do modelo Ajuste Exponencial.
trendType

N (nenhum)

A (aditivo)

M (multiplicativo)

Z (selecionado automaticamente)

Isso é específico do modelo Ajuste Exponencial
seasonType

N (nenhum)

A (aditivo)

M (multiplicativo)

Z (selecionado automaticamente)

Isso é específico do modelo Ajuste Exponencial
modelParamIC

ic_auto

ic_aicc

ic_bic

ic_auto (este é o padrão)

O critério de informações (CI) usado na seleção do modelo.

Funções de Conversão

Funções de conversão convertem um valor de uma forma para outra.

Função Exemplo Descrição Sintaxe

CAST

CAST(hiredate AS CHAR(40)) FROM employee

Altera o tipo de dados de uma expressão ou um literal nulo para outro tipo de dados. Por exemplo, você pode converter um customer_name (um tipo de dados CHAR ou VARCHAR) ou uma birthdate (um literal de data/horário).

Use CAST para mudar para um tipo de dados Date.

Não use TODATE.

CAST(expr AS type)

IFNULL

IFNULL(Sales, 0)

Testa se uma expressão é avaliada como valor nulo; se for, designará o valor especificado à expressão.

IFNULL(expr, value)

INDEXCOL

SELECT INDEXCOL(VALUEOF ("NQ_SESSION"."GEOGRAPHY_LEVEL"), Country, State, City), Revenue FROM Sales

Usa informações externas para retornar a coluna apropriada para que o usuário com sign-in efetuado veja.

INDEXCOL([integer literal], [expr1] [, [expr2], ?-])

NULLIF

SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID" FROM employees e, job_history j WHERE e.employee_id = j.employee_id ORDER BY last_name, "Old Job ID";

Compara duas expressões. Se forem iguais, a função retornará NULL. Se forem diferentes, a função retornará a primeira expressão. Você não pode especificar o literal NULL para a primeira expressão.

NULLIF([expression], [expression])

To_DateTime

SELECT To_DateTime ('2009-03-0301:01:00', 'yyyy-mm-dd hh:mi:ss') FROM sales

Converte strings literais do formato DateTime em um tipo de dados DateTime.

To_DateTime([expression], [literal])

VALUEOF

SalesSubjectArea.Customer.Region = VALUEOF("Region Security"."REGION")

Faz referência ao valor de uma variável de modelo semântico em um filtro.

Use variáveis expr como argumentos da função VALUEOF. Consulte variáveis de modelo semântico estático por nome.

VALUEOF(expr)

Funções de Extração de Data

Essas funções calculam ou arredondam para baixo valores de timestamp para o período mais próximo especificado, como hora, dia, semana, mês e trimestre.

Você pode usar timestamps calculados para agregar dados usando outra granulação. Por exemplo, você pode aplicar a função EXTRACTDAY() a datas de pedido de vendas para calcular um timestamp para meia-noite no dia em que os pedidos ocorrerem, para que você possa agregar os dados por dia.

Função Exemplo Descrição Sintaxe

Extrair Dia

EXTRACTDAY("Order Date")
  • 2/22/1967 3:02:01 AM retorna 2/22/1967 12:00:00 AM.
  • 9/2/2022 10:38:21 AM retorna 9/2/2022 12:00:00 AM.

Retorna um timestamp para meia-noite (0h) no dia em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp de entrada de dados for para 3:02:01 AM em 22 de fevereiro, a função retornará o timestamp para 12:00:00 AM em 22 de fevereiro.

EXTRACTDAY(expr)

Extrair Hora

EXTRACTHOUR("Order Date")
  • 2/22/1967 3:02:01 AM retorna 2/22/1967 3:00:00 AM.
  • 6/17/1999 11:18:30 PM retorna 6/17/1999 11:00:00 PM.

Retorna um timestamp para o início da hora em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp de entrada de dados for para 11:18:30 PM, a função retornará o timestamp para 11:00:00 PM.

EXTRACTHOUR (expr)

Extrair Hora do Dia

EXTRACTHOUROFDAY("Order Date")
  • 2014/09/24 10:58:00 retorna 2000/01/01 10:00:00.
  • 2014/08/13 11:10:00 retorna 2000/01/01 11:00:00

Retorna um timestamp em que a hora é igual à hora do valor da entrada de dados com valores padrão para ano, mês, dia, minutos e segundos.

EXTRACTHOUROFDAY(expr)

Extrair Milissegundo

EXTRACTMILLISECOND("Order Date")
  • 1997/01/07 15:32:02.150 retorna 1997/01/07 15:32:02.150.
  • 1997/01/07 18:42:01.265 retorna 1997/01/07 18:42:01.265.
Retorna um timestamp contendo milissegundos para o valor da entrada de dados. Por exemplo, se o timestamp de entrada de dados for para 15:32:02.150, a função retornará o timestamp para 15:32:02.150.

EXTRACTMILLISECOND(expr)

Extrair Minuto

EXTRACTMINUTE("Order Date")
  • 6/17/1999 11:18:00 PM retorna 6/17/1999 11:18:00 PM.
  • 9/2/2022 10:38:21 AM retorna 9/2/2022 10:38:00 AM.

Retorna um timestamp para o início do minuto em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp de entrada de dados for para 11:38:21 AM, a função retornará o timestamp para 11:38:00 AM.

EXTRACTMINUTE (expr)

Extrair Mês

EXTRACTMONTH("Order Date")
  • 2/22/1967 3:02:01 AM retorna 2/1/1967 12:00:00 AM.
  • 6/17/1999 11:18:00 PM retorna 6/1/1999 12:00:00 AM.

Retorna um timestamp para o primeiro dia do mês em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp de entrada de dados for para 22 de fevereiro, a função retornará o timestamp para 1º de fevereiro.

EXTRACTMONTH(expr)

Extrair Trimestre

EXTRACTQUARTER("Order Date")
  • 2/22/1967 3:02:01 AM retorna 1/1/1967 12:00:00 AM, o primeiro dia do primeiro trimestre fiscal.
  • 6/17/1999 11:18:00 PM retorna 4/1/1999 12:00:00 AM, o primeiro dia do segundo trimestre fiscal.

  • 9/2/2022 10:38:21 AM retorna 7/1/2022 12:00:00 AM, o primeiro dia do terceiro trimestre fiscal.

    Dica: Use QUARTER (expr) para calcular apenas o trimestre ordinal com base no timestamp retornado.

Retorna um timestamp para o primeiro dia do trimestre em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp da entrada de dados ocorrer no terceiro trimestre fiscal, a função retornará o timestamp para 1º de julho.

EXTRACTQUARTER(expr)

Extrair Segundo

EXTRACTSECOND("Order Date")
  • 1997/01/07 15:32:02.150 retorna 1997/01/07 15:32:02.
  • 1997/01/07 20:44:18.163 retorna 1997/01/07 20:44:18.

Retorna um timestamp para o valor da entrada de dados. Por exemplo, se o timestamp de entrada de dados for para 15:32:02.150, a função retornará o timestamp para 15:32:02.

EXTRACTSECOND(expr)

Extrair Semana

EXTRACTWEEK("Order Date")
  • 2014/09/24 10:58:00 retorna 2014/09/21.

  • 2014/08/13 11:10:00 retorna 2014/08/10.

Retorna a data do primeiro dia da semana (Domingo) em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp de entrada de dados for para quarta-feira, 24 de setembro, a função retornará o timestamp para domingo, 21 de setembro.

Observação: Se o primeiro dia da semana (ou seja, domingo) cair em um ano anterior e portanto afetar adversamente a agregação, a função retornará o 7.º dia da semana (ou seja, sábado) do ano atual em vez do primeiro dia da semana do ano anterior. Por exemplo, todas estas opções: 1/1/24, 1/2/24 e 1/3/24 são agregadas para sábado 1/6/24, em vez de domingo 12/29/23.

EXTRACTWEEK(expr)

Extrair Ano

EXTRACTYEAR("Order Date")
  • 1967/02/22 03:02:01 retorna 1967/01/01 00:00:00.
  • 1999/06/17 23:18:00 retorna 1999/01/01 00:00:00.

Retorna um timestamp para 1º de janeiro para o ano em que o valor da entrada de dados ocorre. Por exemplo, se o timestamp da entrada de dados ocorre em 1967, a função retorna o timestamp para 1º de janeiro de 1967.

EXTRACTYEAR (expr)

Dicas sobre o Uso de Dimensões de Data em Áreas de Assunto

Eis aqui algumas dicas sobre como obter os melhores resultados ao usar datas de área de assunto em cálculos.

Adicionando uma Data de Área de Assunto a um Cálculo

Se você arrastar uma data de uma área de assunto diretamente para um cálculo e processá-la como uma string ou um número inteiro, obterá um erro. Isso acontece porque o valor da data subjacente é um timestamp.

Em vez disso, use uma destas opções Funções de Extração de Data para interpretar a data.

Por exemplo, você pode ter essas datas de área de assunto.
Descrição de GUID-39C55B3A-A055-45D3-9904-948680247C08-default.png segue
.png

Para extrair meses dessas datas de área de assunto, use a função ExtractMonthOfYear:

case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') 
THEN 'Q1' 
ELSE 'Rest of the year' END

Funções de Exibição

As funções de exibição operam no conjunto de resultados de uma consulta.

Função Exemplo Descrição Sintaxe

BottomN

BottomN(Sales, 10)

Retorna os n valores mais baixos de expressão, classificados do mais baixo para o mais alto.

BottomN([NumericExpression], [integer])

FILTER

FILTER(Sales USING Product = 'widget')

Calcula a expressão usando o filtro de pré-agregação informado.

FILTER(measure USING filter_expr)

MAVG

MAVG(Sales, 10)

Calcula uma média (baixa) de movimentação das últimas n linhas de dados no conjunto de resultados, inclusive da linha atual.

MAVG([NumericExpression], [integer])

MSUM

SELECT Month, Revenue, MSUM(Revenue, 3) as 3_MO_SUM FROM Sales

Calcula uma soma de movimentação das últimas n linhas de dados, inclusive da linha atual.

A soma da primeira linha é igual à expressão numérica da primeira linha. A soma da segunda linha é calculada com base na soma das duas primeiras linhas de dados e assim por diante. Quando a última linha é atingida, a soma é calculada com base nas últimas n linhas de dados.

MSUM([NumericExpression], [integer])

NTILE

NTILE(Sales, 100)

Determina a classificação de um valor em termos de uma faixa especificada pelo usuário. Ela retorna inteiros para representar qualquer faixa de classificações. O exemplo a seguir mostra uma faixa de 1 a 100, com a escala mais baixa = 1 e a mais alta = 100.

NTILE([NumericExpresssion], [integer])

PERCENTILE

PERCENTILE(Sales)

Calcula uma classificação percentual de cada valor que satisfaz ao argumento de expressão numérica. A classificação percentual varia de 0 (1º percentil) a 1 (100º percentil), inclusive.

PERCENTILE([NumericExpression])

RANK

RANK(Sales)

Calcula a classificação de cada valor que satisfaz ao argumento de expressão numérica. O número mais alto é designado a uma classificação igual a 1 e cada classificação sucessiva recebe o próximo número inteiro consecutivo (2, 3, 4,...). Se determinados valores forem iguais, eles receberão a mesma classificação (por exemplo, 1, 1, 1, 4, 5, 5, 7...).

RANK([NumericExpression])

RCOUNT

SELECT month, profit, RCOUNT(profit) FROM sales WHERE profit > 200

Utiliza um conjunto de registros como entrada e conta o número de registros encontrados até o momento.

RCOUNT([NumericExpression])

RMAX

SELECT month, profit, RMAX(profit) FROM sales

Utiliza um conjunto de registros como entrada e mostra o valor máximo com base nos registros encontrados até o momento. O tipo de dados especificado deve ser aquele que permite ser ordenado.

RMAX([NumericExpression])

RMIN

SELECT month, profit, RMIN(profit) FROM sales

Utiliza um conjunto de registros como entrada e mostra o valor mínimo com base nos registros encontrados até o momento. O tipo de dados especificado deve ser aquele que permite ser ordenado.

RMIN([NumericExpression])

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM FROM sales

Calcula uma soma acumulada com base nos registros encontrados até o momento.

A soma da primeira linha é igual à expressão numérica da primeira linha. A soma da segunda linha é calculada com base na soma das duas primeiras linhas de dados e assim por diante.

RSUM([NumericExpression])

TOPN

TOPN(Sales, 10)

Retorna os n valores mais altos de expressão, classificados do mais alto para o mais baixo.

TOPN([NumericExpression], [integer])

Dicas sobre o Uso de Funções de Exibição

  • FILTER - Caso esteja criando um relatório que usa uma área de assunto, utilize as hierarquias definidas na área de assunto em vez de filtrar colunas de hierarquia diretamente em um cálculo. Em outras palavras, se uma área de assunto tiver uma hierarquia para Tempo\Ano Fiscal\Trimestre Fiscal, então evite:

    filter (<measure> using fiscal_quarter = 'Q4')

    filter (<measure> using fiscal_quarter = 'Q3')

    filter (<measure> using fiscal_year = 'FY24')

Funções de Avaliação

Funções de avaliação são funções de banco de dados que podem ser usadas para transmitir expressões a fim de obter cálculos avançados.

As funções de banco de dados incorporadas podem precisar de uma ou mais colunas. Essas colunas são referenciadas por %1 ... %N na função. As colunas reais devem ser listadas após a função.

Função Exemplo Descrição Sintaxe

EVALUATE

SELECT EVALUATE('instr(%1, %2)', address, 'Foster City') FROM employees

Transmite a função de banco de dados especificada, com colunas referenciadas opcionais como parâmetros, ao banco de dados para avaliação.

EVALUATE([string expression], [comma separated expressions])

EVALUATE_AGGR

EVALUATE_AGGR('REGR_SLOPE(%1, %2)', sales.quantity, market.marketkey)

Transmite a função de banco de dados especificada, com colunas referenciadas opcionais como parâmetros, ao banco de dados para avaliação. Essa função é projetada para funções de agregação com uma cláusula GROUP BY.

EVALUATE_AGGR('db_agg_function(%1...%N)' [AS datatype] [, column1, columnN])

Funções Matemáticas

As funções matemáticas descritas nesta seção executam operações matemáticas.

Função Exemplo Descrição Sintaxe

ABS

ABS(Profit)

Calcula o valor absoluto de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

ABS(expr)

ACOS

ACOS(1)

Calcula o cosseno inverso de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

ACOS(expr)

ASIN

ASIN(1)

Calcula o seno inverso de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

ASIN(expr)

ATAN

ATAN(1)

Calcula a tangente inversa de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

ATAN(expr)

ATAN2

ATAN2(1, 2)

Calcula o arco tangente de y /x, em que y é a primeira expressão numérica e x é a segunda.

ATAN2(expr1, expr2)

CEILING

CEILING(Profit)

Arredonda uma expressão numérica não inteira para o próximo número inteiro mais alto. Se a expressão numérica resultar em um número inteiro, a função CEILING retornará esse número.

CEILING(expr)

COS

COS(1)

Calcula o cosseno de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

COS(expr)

COT

COT(1)

Calcula a cotangente de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

COT(expr)

DEGREES

DEGREES(1)

Converte uma expressão de radianos em graus.

expr é qualquer expressão que avalia para um valor numérico.

DEGREES(expr)

EXP

EXP(4)

Envia o valor para a potência especificada. Calcula e elevado à enésima potência, em que e é a base do logaritmo natural.

EXP(expr)

ExtractBit

Int ExtractBit(1, 5)

Recupera um bit de uma determinada posição em um número inteiro. Ela retorna um inteiro de 0 ou 1 correspondente à posição do bit.

ExtractBit([Source Number], [Digits])

FLOOR

FLOOR(Profit)

Arredonda uma expressão numérica não inteira para o próximo número inteiro mais baixo. Se a expressão numérica resultar em um número inteiro, a função FLOOR retornará esse número.

FLOOR(expr)

LOG

LOG(1)

Calcula o logaritmo natural de uma expressão.

expr é qualquer expressão que avalia para um valor numérico.

LOG(expr)

LOG10

LOG10(1)

Calcula o logaritmo de base 10 de uma expressão.

expr é qualquer expressão que avalia para um valor numérico.

LOG10(expr)

MOD

MOD(10, 3)

Divide a primeira expressão numérica pela segunda e retorna a parte restante do quociente.

MOD(expr1, expr2)

PI

PI()

Retorna o valor constante de pi.

PI()

POWER

POWER(Profit, 2)

Utiliza a primeira expressão numérica e a eleva à potência especificada na segunda expressão numérica.

POWER(expr1, expr2)

RADIANS

RADIANS(30)

Converte uma expressão de graus em radianos.

expr é qualquer expressão que avalia para um valor numérico.

RADIANS(expr)

RAND

RAND()

Retorna um número pseudoaleatório entre 0 e 1.

RAND()

RANDFromSeed

RAND(2)

Retorna um número pseudoaleatório baseado em um valor pré-implantado. Para um valor pré-implantado fornecido, será gerado o mesmo conjunto de números aleatórios.

RAND(expr)

ROUND

ROUND(2.166000, 2)

Arredonda uma expressão numérica para n dígitos de precisão.

expr é qualquer expressão que avalia para um valor numérico.

integer é qualquer número inteiro positivo que representa o número de dígitos de precisão.

ROUND(expr, integer)

SIGN

SIGN(Profit)

Retorna o seguinte:

  • 1 se a expressão numérica for avaliada como número positivo

  • -1 se a expressão numérica for avaliada como número negativo

  • 0 se a expressão numérica for avaliada como zero

SIGN(expr)

SIN

SIN(1)

Calcula o seno de uma expressão numérica.

SIN(expr)

SQRT

SQRT(7)

Calcula a raiz quadrada do argumento de expressão numérica. A expressão numérica deve ser avaliada como um número não-negativo.

SQRT(expr)

TAN

TAN(1)

Calcula a tangente de uma expressão numérica.

expr é qualquer expressão que avalia para um valor numérico.

TAN(expr)

TRUNCATE

TRUNCATE(45.12345, 2)

Trunca um número decimal para retornar um número especificado de casas após o ponto decimal.

expr é qualquer expressão que avalia para um valor numérico.

integer é qualquer número inteiro positivo que representa o número de caracteres à direita da casa decimal a ser retornada.

TRUNCATE(expr, integer)

Executando Funções de Agregação

A execução de funções de agregação realizam operações sobre diversos valores para criar resultados resumidos.

Função Exemplo Descrição Sintaxe

MAVG

 

Calcula uma média (baixa) de movimentação das últimas n linhas de dados no conjunto de resultados, inclusive da linha atual.

expr é qualquer expressão avaliada como valor numérico. integer é qualquer número inteiro positivo. Representa a média das últimas n linhas de dados.

MAVG(expr, integer)

MSUM

select month, revenue, MSUM(revenue, 3) as 3_MO_SUM from sales_subject_area

Calcula uma soma de movimentação das últimas n linhas de dados, inclusive da linha atual.

expr é qualquer expressão avaliada como valor numérico. integer é qualquer número inteiro positivo. Representa a soma das últimas n linhas de dados.

MSUM(expr, integer)

RSUM

SELECT month, revenue, RSUM(revenue) as RUNNING_SUM from sales_subject_area

Calcula uma soma acumulada com base nos registros encontrados até o momento.

expr é qualquer expressão que avalia para um valor numérico.

RSUM(expr)

RCOUNT

select month, profit, RCOUNT(profit) from sales_subject_area where profit > 200

Utiliza um conjunto de registros como entrada e conta o número de registros encontrados até o momento.

expr é uma expressão de qualquer tipo de dados.

RCOUNT(expr)

RMAX

SELECT month, profit,RMAX(profit) from sales_subject_area

Utiliza um conjunto de registros como entrada e mostra o valor máximo com base nos registros encontrados até o momento.

expr é uma expressão de qualquer tipo de dados.

RMAX(expr)

RMIN

select month, profit,RMIN(profit) from sales_subject_area

Utiliza um conjunto de registros como entrada e mostra o valor mínimo com base nos registros encontrados até o momento.

expr é uma expressão de qualquer tipo de dados.

RMIN(expr)

Funções Espaciais

As funções espaciais permitem que você execute análise geográfica ao modelar dados. Por exemplo, você pode calcular a distância entre duas áreas geográficas (conhecidas como formas ou polígonos).

Nota:

Você não pode usar essas funções espaciais em cálculos personalizados para pastas de trabalho de visualização.
Função Exemplo Descrição Sintaxe
GeometryArea

GeometryArea(Shape)

Calcula a área que uma forma ocupa.

GeometryArea(Shape)

GeometryDistance

GeometryDistance(TRIP_START, TRIP_END)

Calcula a distância entre duas formas.

GeometryDistance(Shape 1, Shape 2)

GeometryLength

GeometryLength(Shape)

Calcula a circunferência de uma forma.

GeometryLength(Shape)

GeometryRelate

GeometryRelate(TRIP_START, TRIP_END)

Determina se uma forma está dentro de outra forma. Retorna TRUE ou FALSE como string (varchar).

GeometryRelate(Shape 1, Shape 2)

GeometryWithinDistance

GeometryWithinDistance(TRIP_START, TRIP_END, 500)

Determina se duas formas estão a uma distância especificada uma da outra. Retorna TRUE ou FALSE como string (varchar).

GeometryWithinDistance(Shape1, Shape2, DistanceInFloat)

Funções de Strings

As funções de string executam diversas manipulações de caractere. Elas operam em strings de caracteres.

Função Exemplo Descrição Sintaxe

ASCII

ASCII('a')

Converte uma string de caractere único em seu código ASCII correspondente, entre 0 e 255. Se a expressão do caractere avaliar vários caracteres, é retornado o código ASCII correspondente ao primeiro caractere na expressão.

expr é qualquer expressão que avalia para uma string de caracteres.

ASCII(expr)

BIT_LENGTH

BIT_LENGTH('abcdef')

Retorna o tamanho, em bits, de uma string especificada. Cada caractere Unicode tem 2 bytes de comprimento (igual a 16 bits).

expr é qualquer expressão que avalia para uma string de caracteres.

BIT_LENGTH(expr)

CHAR

CHAR(35)

Converte um valor numérico entre 0 e 255 no valor de caractere correspondente ao código ASCII.

expr é qualquer expressão que avalia para um valor numérico entre 0 e 255.

CHAR(expr)

CHAR_LENGTH

CHAR_LENGTH(Customer_Name)

Retorna o tamanho, em número de caracteres, de uma string especificada. Espaços em branco iniciais e finais não são contados no tamanho da string.

expr é qualquer expressão que avalia para uma string de caracteres.

CHAR_LENGTH(expr)

CONCAT

SELECT DISTINCT CONCAT ('abc', 'def') FROM employee

Concatena duas strings de caracteres.

exprs são expressões que avaliam para strings de caracteres, separadas por vírgulas.

Você deve usar dados brutos, e não dados formatados, com CONCAT.

CONCAT(expr1, expr2)

INSERT

SELECT INSERT('123456', 2, 3, 'abcd') FROM table

Insere uma string de caracteres especificada, em um local especificado de outra string de caracteres.

expr1 é qualquer expressão que avalia para uma string de caracteres. Identifica a string de caracteres do alvo.

integer1 é qualquer número inteiro positivo que representa o número de caracteres do início da string do alvo no qual a segunda string deve ser inserida.

integer2 é qualquer número inteiro positivo que representa o número de caracteres da string de destino a ser substituída pela segunda string.

expr2 é qualquer expressão que avalia para uma string de caracteres. Identifica a string de caracteres a ser inserida na sequência do alvo.

INSERT(expr1, integer1, integer2, expr2)

LEFT

SELECT LEFT('123456', 3) FROM table

Retorna um número especificado de caracteres a partir do lado esquerdo de uma string.

expr é qualquer expressão que avalia para uma string de caracteres.

integer é qualquer número inteiro positivo que representa o número de caracteres à esquerda da string a serem retornados.

LEFT(expr, integer)

LENGTH

LENGTH(Customer_Name)

Retorna o tamanho, em número de caracteres, de uma string especificada. O comprimento informado não leva em consideração os caracteres em branco à esquerda.

expr é qualquer expressão que avalia para uma string de caracteres.

LENGTH(expr)

LOCATE

LOCATE('d' 'abcdef')

Retorna a posição numérica de uma string de caracteres em outra string de caracteres. Se a string de caracteres não for encontrada na string que está sendo pesquisada, a função retornará o valor 0.

expr1 é qualquer expressão que avalia para uma string de caracteres. Identifica a string a ser pesquisada.

expr2 é qualquer expressão que avalia para uma string de caracteres.

Identifica a string a ser pesquisada.

LOCATE(expr1, expr2)

LOCATEN

LOCATEN('d' 'abcdef', 3)

Como LOCATE, retorna a posição numérica de uma string de caracteres em outra string de caracteres. LOCATEN inclui um argumento de número inteiro que permite a você especificar uma posição inicial para começar a pesquisa.

expr1 é qualquer expressão que avalia para uma string de caracteres. Identifica a string a ser pesquisada.

expr2 é qualquer expressão que avalia para uma string de caracteres. Identifica a string a ser pesquisada.

integer é qualquer número inteiro positivo (diferente de zero) que represente a posição inicial em que a string de caracteres será procurada.

LOCATEN(expr1, expr2, integer)

LOWER

LOWER(Customer_Name)

Converte uma string de caracteres em letras minúsculas.

expr é qualquer expressão que avalia para uma string de caracteres.

LOWER(expr)

OCTET_LENGTH

OCTET_LENGTH('abcdef')

Retorna o número de bytes de uma string especificada.

expr é qualquer expressão que avalia para uma string de caracteres.

OCTET_LENGTH(expr)

POSITION

POSITION('d', 'abcdef')

Retorna a posição numérica de strExpr1 em uma expressão de caractere. Se strExpr1 não for encontrado, a função retornará 0.

expr1 é qualquer expressão que avalia para uma string de caracteres. Identifica a string a ser procurada na string do alvo. Por exemplo, "d".

expr2 é qualquer expressão que avalia para uma string de caracteres. Identifica a string do alvo a ser pesquisada. Por exemplo, "abcdef".

POSITION(expr1, expr2)

REPEAT

REPEAT('abc', 4)

Repete uma expressão especificada n vezes.

expr é qualquer expressão que avalia para uma string de caracteres.

integer é qualquer número inteiro positivo que representa o número de vezes a repetir a string de caracteres.

REPEAT(expr, integer)

REPLACE

REPLACE('abcd1234', '123', 'zz')

Substitui um ou mais caracteres de uma expressão de caractere especificada por um ou mais caracteres.

expr1 é qualquer expressão que avalia para uma string de caracteres. É a string na qual os caracteres deverão ser substituídos.

expr2 é qualquer expressão que avalia para uma string de caracteres. Esta segunda string identifica os caracteres da primeira string que serão substituídos.

expr3 é qualquer expressão que avalia para uma string de caracteres. Esta terceira string especifica os caracteres a serem substituídos na primeira string.

REPLACE(expr1, expr2, expr3)

RIGHT

SELECT RIGHT('123456', 3) FROM table

Retorna um número especificado de caracteres da direita de uma string.

expr é qualquer expressão que avalia para uma string de caracteres.

integer é qualquer número inteiro positivo que representa o número de caracteres à direita da string a serem retornados.

RIGHT(expr, integer)

SPACE

SPACE(2)

Insere espaços em branco.

integer é qualquer número inteiro positivo que indica o número de espaços a serem inseridos.

SPACE(expr)

SUBSTRING

SUBSTRING('abcdef' FROM 2)

Cria uma nova string começando por um número fixo de caracteres na string original.

expr é qualquer expressão que avalia para uma string de caracteres.

startPos é qualquer número inteiro positivo que representa o número de caracteres desde o início no lado esquerdo da string em que o resultado deve começar.

SUBSTRING([SourceString] FROM [StartPostition])

SUBSTRINGN

SUBSTRING('abcdef' FROM 2 FOR 3)

Como SUBSTRING, cria uma nova string começando por um número fixo de caracteres na string original.

SUBSTRINGN inclui um argumento de número inteiro que permite a você especificar o tamanho da nova string, em número de caracteres.

expr é qualquer expressão que avalia para uma string de caracteres.

startPos é qualquer número inteiro positivo que representa o número de caracteres desde o início no lado esquerdo da string em que o resultado deve começar.

SUBSTRING(expr FROM startPos FOR length)

TrimBoth

Trim(BOTH '_' FROM '_abcdef_')

Remove caracteres especificados à esquerda e à direita de uma string de caracteres.

char é qualquer caractere simples. Se você omitir essa especificação (bem como as aspas simples necessárias), um caractere vazio será utilizado como o valor-padrão.

expr é qualquer expressão que avalia para uma string de caracteres.

TRIM(BOTH char FROM expr)

TRIMLEADING

TRIM(LEADING '_' FROM '_abcdef')

Remove caracteres especificados à esquerda de uma string de caracteres.

char é qualquer caractere simples. Se você omitir essa especificação (bem como as aspas simples necessárias), um caractere vazio será utilizado como o valor-padrão.

expr é qualquer expressão que avalia para uma string de caracteres.

TRIM(LEADING char FROM expr)

TRIMTRAILING

TRIM(TRAILING '_' FROM 'abcdef_')

Remove caracteres especificados à direita de uma string de caracteres.

char é qualquer caractere simples. Se você omitir essa especificação (bem como as aspas simples necessárias), um caractere vazio será utilizado como o valor-padrão.

expr é qualquer expressão que avalia para uma string de caracteres.

TRIM(TRAILING char FROM expr)

UPPER

UPPER(Customer_Name)

Converte uma string de caracteres em letras maiúsculas.

expr é qualquer expressão que avalia para uma string de caracteres.

UPPER(expr)

Dicas sobre o Uso de Funções de String

Eis aqui algumas dicas para obter os melhores resultados ao usar funções de string em suas pastas de trabalho.

Concatenar vários valores:

Use LISTAGG para concatenar vários valores em uma célula e uma linha.

listagg(<column to concatenate> by <grouping column>)

Adicione on overflow truncate se a string resultante for longa demais e adicione distinct se os valores não forem exclusivos.

Por exemplo:

listagg(distinct City_ID by STATE on overflow truncate)

Funções do Sistema

A função USER do sistema retorna valores relacionados à sessão. Por exemplo, o nome do usuário com o qual você acessou.

Função Exemplo Descrição Sintaxe

DATABASE

 

Retorna o nome da área de assunto na qual você fez log-on.

DATABASE()

USER

 

Retorna o nome do usuário para o modelo semântico no qual você fez log-on.

USER()

Funções de Série Temporal

As funções de série temporal permitem que você agregue e preveja dados com base em dimensões de tempo. Por exemplo, você pode usar a função AGO para calcular a receita de um ano atrás.

Os membros da dimensão de tempo devem estar no nível da função ou abaixo dele. Por isso, uma ou mais colunas que identificam exclusivamente os membros no nível ou abaixo do nível especificado na consulta devem ser projetadas.

Função Exemplo Descrição Sintaxe

AGO

SELECT Year_ID, AGO(sales, year, 1)

Calcula o valor agregado de uma medida, em um período especificado no passado. Por exemplo, para calcular a receita mensal de um ano atrás, use AGO(Revenue, Year, 1, SHIP_MONTH). Para calcular receitas trimestrais do último trimestre, use AGO(Revenue, Quarter, 1).

AGO(MEASURE, TIME_LEVEL, OFFSET)

Em que:

  • MEASURE representa a medida a ser calculada, por exemplo, receita.
  • TIME_LEVEL representa o intervalo de tempo, que deve ser Ano, Trimestre, Mês, Semana ou Dia.
  • OFFSET representa o número de intervalos de tempo para cálculo retroativo, por exemplo, 1 para um ano.

PERIODROLLING

SELECT Month_ID, PERIODROLLING (monthly_sales, -1, 1)

Calcula a agregação de uma medida ao longo do período que começa com x unidades de tempo e termina com y unidades do tempo atual. Por exemplo, PERIODROLLING pode calcular as vendas de um período que inicia um trimestre antes e termina um trimestre após o trimestre atual.

PERIODROLLING(measure, x [,y])

Em que:

  • MEASURE representa o nome de uma coluna de medida.
  • X é um número inteiro que representa o deslocamento do horário atual.
  • Y é um número inteiro que representa o número de unidades de tempo nas quais a função calcula.
  • HIERARCHY é um argumento opcional que representa o nome de uma hierarquia em uma dimensão de tempo, como YR, MON, DAY, que você deseja usar para calcular a janela de tempo.

TODATE

SELECT Year_ID, Month_ID, TODATE (sales, year)

Calcula o valor agregado de uma medida desde o início de um período até o último, por exemplo, cálculos do acumulado no ano.

Por exemplo, para calcular o Acumulado do Ano de Vendas, use TODATE(sales, year).

TODATE(MEASURE, TIME_LEVEL)

Em que:

  • MEASURE representa uma expressão que faz referência a pelo menos uma coluna de medida, por exemplo, vendas.
  • TIME_LEVEL representa o intervalo de tempo, que deve ser Ano, Trimestre, Mês, Semana ou Dia.