Only() retorna um valor se houver um e somente um resultado possível a partir dos dados agregados. Por exemplo, procurar o único produto em que o preço unitário =9 retornará NULL se mais de um produto tiver um preço unitário de 9.
A expressão ou campo que contém os dados a serem medidos.
SetExpression
Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise.
TOTAL
Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico.
Usando TOTAL [<fld {.fld}>], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais.
Carregue os dados e abra uma pasta. Crie uma nova tabela com as seguintes medidas:
=Only({<UnitPrice={9}>} Product) para calcular o único Product que tem um UnitPrice de 9.
=Only({<Product={DD}>} Customer) para calcular o único Customer que vende um Product chamado DD.
=Only({<UnitPrice={20}>} UnitSales) para calcular o número de UnitSales em que UnitPrice é 20.
=Only({<UnitPrice={15}>} UnitSales) para calcular os valores de UnitSales em que o UnitPrice = 15.
Results table
Only({<UnitPrice={9}>} Product)
Only({<Product={DD}>} Customer)
Only({<UnitPrice={20}>} UnitSales)
Only({<UnitPrice={15}>} UnitSales)
BB
Betacab
2
-
Nesse exemplo, observe o seguinte:
A primeira coluna retorna o valor BB porque esse é o único Product que tem um UnitPrice de 9.
A segunda coluna retorna Betacab porque é o único Customer que vende um Product chamado DD.
A terceira coluna retorna 2 porque esse é o único valor de UnitSales em que UnitPrice = 20.
A quarta coluna retorna NULL porque não há um único resultado em que UnitPrice = 15. Nesse conjunto de dados, há dois valores de UnitSales em que o UnitPrice =15.
Exemplo - Cenário de Only
Visão geral
Um conjunto de dados contém vendas de produtos por período. A empresa quer determinar se um produto é vendido em uma única loja ou em várias lojas.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Os campos a seguir na tabela de dados:
Date
RecordID
StoreProduct
Sales
Script de carregamento
Example:
Load * inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão:
StoreProduct
Crie as seguintes medidas:
=Only(Store) para calcular a loja exclusiva onde o produto é vendido.
=If(IsNull(Only(Store)), 'Multiple Stores', 'Single Store') para calcular se o produto é vendido em uma única loja ou em várias lojas.
=Sum(Sales) para calcular o total de vendas do produto.
Os resultados indicam que Apples e Bananas são vendidos em apenas uma loja, enquanto Carrots é vendido em várias lojas.
Exemplo - Cenário avançado para criar uma tabela de registros de um único mês
Visão geral
Este exemplo usa a função Only para mostrar uma tabela linha por linha de registros de um único mês. Para isso, a análise de conjunto é usada para delimitar o conjunto de registros desejado. A análise de conjunto requer pelo menos uma medida, porém, como não precisamos agregar o conjunto de registros, podemos usar efetivamente a função de agregação Only para hospedar o escopo da análise de conjunto.
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela de dados denominada Example.
Uma instrução de LOAD anterior que deriva o campo MonthYear do campo Date truncando o dia do mês, usando a função MonthStart e retornando uma representação de data do dia 1º de cada mês. Esse resultado é fornecido à função Date para definir o formato de exibição para MMM YY, por exemplo, Jan 24.
Os campos a seguir na tabela de dados:
Date
RecordID
StoreProduct
Sales
Store
Script de carregamento
Example:
Load
*,
date(MonthStart (Date),'MMM YY') AS MonthYear
inline [
Date, RecordID, StoreProduct, Sales, Store
2024-01-01, 1, Apple, 100, A
2024-01-15, 2, Banana, 80, B
2024-01-30, 3, Carrot, 50, C
2024-02-05, 4, Apple, 120, A
2024-02-20, 5, Banana, 90, B
2024-02-28, 6, Carrot, 60, D
2024-03-10, 7, Apple, 110, A
2024-03-22, 8, Banana, 85, B
2024-03-31, 9, Carrot, 55, C
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
MonthYear
RecordID
Date
StoreProduct
Store
Crie as seguintes medidas:
=Only({$<MonthYear={'$(=MaxString(MonthYear))'}>} Sales) para avaliar o valor de Sales e retornar somente aqueles em que MonthYear é o último (mais recente) MonthYear disponível, com base nas seleções atuais da tabela. A expansão de sinal de dólar ($) realiza um cálculo em linha usando a função MaxString, $(=MaxString(MonthYear)), que retorna a representação de texto do último valor de MonthYear.
Nota informativaA tentativa de filtrar MonthYear com base na representação numérica, por exemplo, usando a função Max , Max(MonthYear), não produziria nenhum resultado. A análise de conjunto aplica seleções de filtros com base apenas na representação de texto de qualquer tipo de dado duplo; um tipo de dado com uma representação numérica e textual, como Date.
A saída da função Only produz uma tabela de registros cujo padrão é apresentar o valor de venda para o MonthYear mais recente disponível nos dados. Se você selecionar um mês anterior na coluna MonthYear, como Feb 24, aparecerá o valor de vendas mais recente desse mês.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!