Conceito: linguagem de expressão Prism
O Prism Analytics inclui sua própria linguagem de expressão composta por funções e operadores. Use a linguagem de expressão Prism para criar uma
expressão
, que pode ser usada para criar novos valores ou filtrar valores existentes.Uma expressão calcula ou produz um valor combinando campos, valores constantes, operadores e funções. Uma expressão gera um valor de um tipo de campo específico, como valores numéricos ou de texto. Expressões simples podem ser um único valor constante, os valores de um determinado campo ou apenas uma função. Você pode usar operadores para unir duas ou mais expressões simples em uma expressão complexa.
Você pode usar expressões em conjuntos de dados:
- Campos calculadosUse expressões para definir campos calculados que operam nos dados de origem. Uma expressão de campo calculado gera valores com base em um cálculo ou condição e retorna um valor para cada linha de entrada. As expressões de campo calculado podem conter valores de outros campos, constantes, operadores matemáticos, operadores de comparação ou funções de linha integradas.
- Filtrar fases.Use uma expressão em uma fase Filtro para limitar o escopo dos dados de origem de um conjunto de dados.
O construtor de expressões ajuda você a criar expressões de campo calculado em um conjunto de dados. Ele exibe os campos disponíveis no conjunto de dados e a lista de funções Prism. Ele valida suas expressões para sintaxe correta, tipos de campo de entrada corretos e assim por diante.
Entradas e saídas de função
As funções usam um ou mais valores de entrada e retornam um valor de saída. Os valores de entrada podem ser um valor literal ou o nome de um campo que contém um valor. Em ambos os casos, a função espera que o valor de entrada seja um tipo de campo específico, como Texto ou Número inteiro. Exemplo: a função CONCAT() combina entradas de Texto e saídas de um novo Texto.
Este exemplo demonstra como usar a função CONCAT() para concatenar os valores nos campos de
mês
, dia
e ano
separados pelo caractere literal de barra:CONCAT([month],"/",[day],"/",[year])
O valor de retorno da função pode ser o mesmo que o tipo de entrada ou pode ser um tipo de campo inteiramente novo. Exemplo: a função TO_DATE() usa um Texto como entrada, mas gera um valor de Data. Se uma função espera um Text, mas é passado outro tipo de campo como entrada, a função retorna um erro.
Normalmente, as funções são classificadas pelo tipo de campo que ocupam ou por sua finalidade. Exemplo: CONCAT() é uma função de texto e TO_DATE() é uma função de conversão de tipo de campo.
Funções de aninhamento
As funções podem usar outras funções como argumentos. Exemplo: você pode usar a função CONCAT como um argumento para a função TO_DATE(). O resultado final é um valor de Data no formato 10/31/2014.
TO_DATE(CONCAT([month],"/",[day],"/",[year]),"MM/dd/yyyy")
A função aninhada deve retornar o tipo de campo correto. Portanto, como TO_DATE() espera uma entrada de texto e CONCAT() retorna um texto, o aninhamento é bem-sucedido.
Referência aos campos no conjunto de dados atual
A Workday recomenda colocar todos os nomes de campos entre colchetes (
[]
). Exemplo:TO_INT([sales])
TO_INT([Sale Amount])
TO_INT([2013_data])
TO_INT([count])
Se um nome de campo contém um ] (colchete de fechamento), você deve evitar o colchete de fechamento duplicando o valor do]]. Suponha que você tenha este nome de campo:
[Total Sales]
Você coloca o nome inteiro do campo entre colchetes e faz o escape do colchete de fechamento que faz parte do nome do campo:
[[Total Sales]]]
Valores de texto literal
Para especificar um valor de Texto literal ou real, coloque o valor entre aspas duplas (
"
). Exemplo: essa expressão converte os valores de um campo sexo
nos valores literais de masculino
, feminino
ou desconhecido
:
CASE WHEN [gender]="M"THEN"male"WHEN [gender]="F"THEN"female"ELSE"unknown"END
Para inserir uma aspa literal dentro de um valor literal, dobre o caractere de aspa literal. Exemplo:
CASE WHEN [height]="60""" THEN "5 feet" WHEN [height]="72""" THEN "6 feet" ELSE "other" END
A função REGEX() é um caso especial. Na função REGEX(), as expressões de texto também são colocadas entre aspas. Quando uma expressão de Texto contém aspas literais, dobre o caractere de aspas literais. Exemplo:
REGEX([height], "\d\'(\d)+""")
Valores de data literal
Para fazer referência a um valor de data em uma expressão de fase de filtro, você deve usar este formato (ou qualquer versão abreviada dele) sem aspas ou outro tipo de pontuação:
yyyy-MM-ddTHH:mm:ss:SSSZ
Exemplo:
[Order Date] BETWEEN 2016-06-01T00:00:00.000Z AND 2016-07-31T00:00:00.000Z
Se a expressão de filtro é uma versão abreviada do formato completo, o Prism atribui um valor zero (0) aos valores que não estão incluídos. Exemplo: esta expressão:
[Order Date] >= 2017-01-01
É equivalente a:
[Order Date] >= 2017-01-01T00:00:00.000Z
Para fazer referência a um valor de data literal em uma expressão de campo calculado, você deve especificar o formato dos componentes de data e hora usando TO_DATE, que usa um argumento de Texto literal e uma cadeia de caracteres de formato. Exemplo:
CASE WHEN [Order Date]=TO_DATE("2013-01-01 00:00:59 PST","yyyy-MM-dd HH:mm:ss z") THEN "free shipping" ELSE "standard shipping" DONE
Valores numéricos literais
Para valores numéricos literais, você pode simplesmente especificar o próprio número sem nenhum escape ou formatação especial. Exemplo:
CASE WHEN [is married]=1THEN "married" WHEN [is married]=0THEN "not_married" ELSE NULL END