Levantamento explícito
Levantamento explícito é uma característica do mecanismo Extensible Analytics do GoodDataque que oferece a você maior flexibilidade na agregação de métricas em relatórios.
No diagrama de modelo de dados lógicos (LDM) abaixo, as métricas agregadas do fato de valor, tais como SELECT SUM(Valor)
, podem ser agregadas por qualquer um dos atributos em vermelho. Observe que esses são os atributos com setas que apontam para o valor.
Com o levantamento explícito, você pode percorrer a granulidade da agregação usando a palavra-chave BY para bloquear o nível de agregação em um atributo que de outro modo você não poderia usar para segmentar uma determinada métrica.
No exemplo a seguir, no mesmo LDM, veja como o levantamento explícito permite segmentar a métrica de Número de residentes
por Shop_ID
, mesmo que Shop_ID
não pareça estar relacionado ao fato Número de residentes
.
Esta agregação é descrita detalhadamente no exemplo 1 abaixo.
Exemplo 1 - Fazendo o levantamento de um nível de agregação
A métrica a seguir representa o número total de residentes em uma cidade.
SELECT SUM (Número de residentes)
No LDM do projeto exibido abaixo, você pode ver que a métrica Número de residentes
pode ser segmentada por cidade (Town_ID
) ou por condado(Condado
).
O relatório resultante se parece com o seguinte:
Com o levantamento explícita, você pode segmentar métricas por outros atributos que não estão diretamente relacionados ao fato fundamental da métrica. Por exemplo, você pode modificar a sua definição para segmentar a métrica de Número de residentes
por Shop_ID
.
SELECT SUM (Número de residentes) BY Shop_ID
O relatório mostra agora o Número de residentes
na cidade onde estão localizadas cada loja. A métrica é agregada em nível de Town_ID
.
Agora você pode comparar a métrica de Número de residentes
lado a lado com uma métrica que representa a receita bruta de cada loja (ou seja, o valor total de todas as transações agregadas em nível de Shop_ID
).
Para contar a receita bruta, crie a seguinte métrica:
SELECT SUM(Valor)
Você pode dividir essa métrica por qualquer atributo relacionado de maior granularidade (consulte atributos vermelhos no primeiro gráfico, acima), adicionando os atributos no nível do relatório.
Por exemplo, adicione os atributos Condado
, , Town_ID
e Shop_ID
ao relatório. Isso permite que você procure correlações entre o número de residentes na cidade em que uma loja está localizada e a receita bruta de cada loja.
Para um olhar mais atento sobre a correlação entre as duas métricas, remova os atributos Condado
e Town_ID
do relatório e visualize o relatório modificado como um gráfico de dispersão.
Exemplo 2 - Levantamento através de vários níveis de agregação
Usando este mesmo LDM como noExemplo 1, você pode rever os gerentes mais bem-sucedidos na administração das lojas: calcule o valor total da transação associado a cada gerente de loja.
Esse Gerente
não está relacionado ao fato Valor
no LDM. Com o levantamento explícito, você pode agregar Valor
em nível de Shop_ID
e especificar que esses valores devem ser agregados em nível de registros de funcionários
. Isso permite que você segmente por atributo gerente
relacionado com registros de funcionários
.
Em primeiro lugar, escreva uma métrica que agrega o Valor
de transações individuais em nível de cada loja. Isso calcula o valor total de todas as transações efetuadas em cada loja:
SELECT SUM(Valor) BY Shop_ID
Em seguida, agregue esses valores em nível de Registros de funcionários
.
SELECT ((SELECT SUM(Valor) BY Shop_ID)) BY Registros de funcionários
Por fim, adicione a função de agregação MAX para desdobrar a métrica para o nível de gerente.
SELECT MAX((SELECT ((SELECT SUM(Valor) BY Shop_ID)) BY Registros de funcionários
O aninhamento de SELECT em torno de SUM evita a dupla contagem (pressupondo-se uma relação de 1:1 entre gerentes e lojas); agregar com SUM em vez de MAX, multiplicaria cada valor pelo número de funcionários atribuídos ao gerente e à loja.
Observe que, se um gerente gerencia várias lojas, estes resultados de métrica aninhados vão duplicar a contagem de valores, o que é um problema comum com relações M:N.
O relatório resultante exibe a agregação de valores de transação individual – receitas totais de transações – segmentada por gerente da loja.
Embora cada um dos valores totais exibidos estão associados a um gerente, eles são agregados no nível de loja. Valores correspondentes para dois gerentes não significa que eles trabalham na mesma loja; Alexandre e Marcos são gerentes de lojas diferentes.
Alterne para uma visualização diferente para ver quem consegue o melhor desempenho lojas e receita bruta adquirida por loja de cada gerente.
Exemplo 3 - Levantamento explícito avançado
Você também pode contar o tempo médio decorrido entre duas primeiras transações dos clientes.
Uso o levantamento explícito para bloquear a Data da transação
em nível de transações individuais com a palavra-chave BY
. Você pode então calcular a diferença entre as datas de transações para cada cliente. Isso exibe o período de tempo para cada cliente, bem como a média para o tempo decorrido entre transações em todos os clientes.
Primeiro, você deve contar as datas das transações. Selecione os valores de data das várias operações, a agregação não é necessária.
SELECT Date (Data da transação) BY Registros de transação
Para descobrir se uma função de agregação é necessária em uma expressão, visualize o processo que deseja realizar no LDM do projeto:
Direção Transversal | Agregação necessária |
---|---|
Movendo ao longo de uma uma seta, da esquerda para a direita | Isto é levantamento explícito. Não requer nenhuma agregação. |
Movendo ao longo de uma seta, da direita para a esquerda | Esta é a agregação. Requer uma função de agregação. |
Em seguida, crie duas métricas que fazem referência à métrica levantada da data original data:
- Uma métrica que filtra as primeiras datas de compra
- Uma métrica que filtra as segundas datas de compra
MAX(Data de transação levantada) WHERE Número de compra = 1
MAX(Data de transação levantada) WHERE Número de compra = 2
Essas métricas agregam a data de transação levantada com uma função MAX para filtrá-la por número da compra. As razões para isso são:
- SUM funciona se houver apenas um valor de dados que corresponda a um número de compra = 2. Se houver múltiplo valores onde número de compra = 2, os valores de métrica são contados duplamente.
- AVG assemelha-se à intenção da métrica. No entanto, a AVG leva mais tempo para calcular.
Finalmente, crie uma métrica que calcula a diferença entre as métricas de data de compra. Então você pode segmentar o resultado final por Comprador
, que é o atributo de nível de relatório.
SELECT AVG (Data de segunda compra-Data de primeira compra)
O relatório resultante mostra a duração entre primeiras e segunda visitas discriminadas pelo atributo Comprador.
Adicionando a métrica Valor total
ao relatório (SELECT SUM(Valor)
) para procurar correlações em duração entre transações iniciais e o montante total gasto.
Para encontrar a duração média entre as duas primeiras transações através de todos os compradores, modifique a métrica e remova todos os atributos de relatório:
SELECT AVG ((SELECT data de segunda compra - Data de primeira compra do comprador))