Todos os produtos
Search
Central de documentação

Quick BI:Funções de análise (funções LOD)

Última atualização: Jun 27, 2026

A função LOD significa expressão de nível de detalhe. Ela resolve incompatibilidades de granularidade de cálculo entre expressões. Este tópico explica como usar as funções LOD.

Limites

Tabelas de detalhes não suportam funções LOD.

Contexto

Atualmente, a análise no Quick BI depende de dimensões fixas. Por exemplo, para visualizar a contagem de pedidos por região e província, coloque região e província (dimensões) nas linhas de uma tabela cruzada e a contagem de pedidos (medida) nas colunas. Defina o método de agregação como Soma.

image.png

A consulta SQL gerada é:

SELECT
  ADR_T_1_.`area` AS T_AAC_2_,
  ADR_T_1_.`province` AS T_A9E_3_,
  SUM(ADR_T_1_.`order_amt`) AS T_AAD_4_
FROM
  `qbi4test`.`company_sales_record` AS ADR_T_1_
GROUP BY
  ADR_T_1_.`area`,
  ADR_T_1_.`province`
ORDER BY
  T_AAC_2_ ASC,
  T_A9E_3_ ASC

Mas e se você quiser ver dados no nível região-província e também no nível região na mesma tabela? Ou comparar vendas no nível da província com totais no nível da região? Ou identificar o tipo de produto com maiores vendas por província? Nesses casos, use funções LOD.

Cenários

Uma expressão de nível de detalhe define o nível de granularidade da agregação de dados. Diferentes níveis representam diferentes profundidades e granularidades de agregação. As expressões LOD lidam com visualizações que contêm múltiplos níveis de detalhe.

Se sua análise exigir a adição de uma dimensão cuja granularidade seja maior ou menor que a da visualização atual — mas você não quiser alterar o gráfico existente —, use expressões de nível de detalhe.

Sintaxe

LOD (Expressões de Nível de Detalhe) é um recurso de cálculo poderoso que permite executar cálculos e agregações complexas durante a análise de dados. As expressões LOD controlam a granularidade do cálculo. Elas permitem analisar dados em um nível de granularidade especificado (FIXED), em um nível de granularidade maior (INCLUDE) ou em um nível de granularidade menor (EXCLUDE). O uso básico é o seguinte:

LOD_FIXED

Sintaxe

LOD_FIXED{<dimension declaration> : <aggregation expression>}

Parâmetros

  • Declaração de dimensão: Uma ou mais dimensões para vincular à expressão de agregação. Separe as dimensões por vírgulas.

  • Expressão de agregação: O cálculo a ser executado. Define a dimensão alvo.

Definição

Calcula um valor agregado fixo nas dimensões especificadas. Outras dimensões no gráfico não o afetam.

Saída

Valor numérico

Exemplo

LOD_FIXED{[region]: BI_SUM([order amount])}

Significado: Agrega apenas por região. Soma o valor do pedido independentemente de outras dimensões da consulta.

Para mais exemplos, consulte Exemplos da função FIXED.

Limites

Não há suporte para fontes de dados Lindorm (mecanismo de tabela ampla, SQL multimodelo), Elasticsearch ou SAP IQ (Sybase IQ).

LOD_INCLUDE

Sintaxe

LOD_INCLUDE{<dimension declaration> : <aggregation expression>}

Parâmetros

  • Declaração de dimensão: Uma ou mais dimensões para vincular à expressão de agregação. Separe as dimensões por vírgulas.

  • Expressão de agregação: O cálculo a ser executado. Define a dimensão alvo.

Definição

Executa a agregação usando dimensões adicionais presentes no gráfico.

Saída

Valor numérico

Exemplo

LOD_INCLUDE{[region]: BI_SUM([order amount])}

Significado: Adiciona região como dimensão de agregação às dimensões existentes na consulta. Soma o valor do pedido.

Para mais exemplos, consulte Exemplos da função INCLUDE.

Limites

Não há suporte para fontes de dados Lindorm (mecanismo de tabela ampla, SQL multimodelo), Elasticsearch ou SAP IQ (Sybase IQ).

LOD_EXCLUDE

Sintaxe

LOD_EXCLUDE{<dimension declaration> : <aggregation expression>}

Parâmetros

  • Declaração de dimensão: Uma ou mais dimensões para vincular à expressão de agregação. Separe as dimensões por vírgulas.

  • Expressão de agregação: O cálculo a ser executado. Define a dimensão alvo.

Definição

Executa a agregação excluindo dimensões específicas do gráfico.

Saída

Valor numérico

Exemplo

LOD_EXCLUDE{[region]: BI_SUM([order amount])}

Significado: Parte das dimensões existentes na consulta. Se a região existir, ela será removida. Em seguida, soma o valor do pedido usando as dimensões restantes.

Para mais exemplos, consulte Exemplos da função EXCLUDE.

Limites

Não há suporte para fontes de dados Lindorm (mecanismo de tabela ampla, SQL multimodelo), Elasticsearch ou SAP IQ (Sybase IQ).

Procedimento

  1. No editor de conjuntos de dados, clique em Create Calculated Field para abrir a caixa de diálogo de configuração.

    image

  2. Insira um nome de campo (①). Em field expression, selecione a função LOD e os campos desejados (②).

    image

  3. Clique em OK após a criação. Ao usar o novo campo para criar um gráfico no painel, o valor total de pedidos por região permanece constante, independentemente do tipo de produto.

    image..png

Referência de expressões

Fórmula básica

A estrutura e a sintaxe das três expressões LOD são:

  • Estrutura

    • LOD_FIXED{<dimension declaration> : <aggregation expression>}

    • LOD_INCLUDE{<dimension declaration> : <aggregation expression>}

    • LOD_EXCLUDE{<dimension declaration> : <aggregation expression>}

Exemplo: LOD_FIXED{[order date]:sum([order amount])}

  • Referência de sintaxe

    • FIXED | INCLUDE | EXCLUDE: Palavras-chave que definem o escopo do LOD.

    • <dimension declaration>: Uma ou mais dimensões para vincular à expressão de agregação. Separe as dimensões por vírgulas.

    • <aggregation expression>: O cálculo a ser executado. Define a dimensão alvo.

Condições de filtro

Além das expressões básicas, o Quick BI suporta condições de filtro. Separe declarações de dimensão, expressões de agregação e filtros por dois pontos.

  • LOD_FIXED{dimension1,dimension2...:aggregation expression:filter condition}

  • LOD_INCLUDE{dimension1,dimension2...:aggregation expression:filter condition}

  • LOD_EXCLUDE{dimension1,dimension2...:aggregation expression:filter condition}

Nota
  • As condições de filtro são opcionais.

  • O LOD_FIXED calcula agregações com uma granularidade fixa. Configurações externas não o afetam. Por padrão, o LOD_FIXED usa todos os dados. Apenas filtros dentro da expressão são aplicados. Outros filtros — incluindo filtros de painel e controles de consulta — são ignorados.

    O LOD_INCLUDE e o LOD_EXCLUDE respeitam as configurações do gráfico. Filtros externos são aplicados.

    Para obter detalhes, consulte Regras de condição de filtro.

Lógica de implementação

Na prática, as expressões LOD geram dados agregados. Para oferecer visualizações ricas, esses dados frequentemente são mesclados com dados brutos ou outros níveis de agregação. Em SQL, subconsultas e operações JOIN executam essa tarefa. Esta seção explica a lógica de implementação das expressões LOD FIXED, INCLUDE e EXCLUDE.

Nível FIXED

Retomando a questão inicial: como mostrar dados no nível região-província e no nível região em uma única tabela?

Crie uma expressão FIXED:

LOD_FIXED{[area]:sum([order_amt])}

Em SQL, use uma subconsulta para calcular os totais de pedidos por região e faça um JOIN com a consulta principal:

-- Simplified structure
-- lod_fixed{[area]:sum([order_amt])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,			-- area
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,			-- province
    LOD_TM.`LOD_8BE7507A47AD81` AS LOD_2,			-- order_amt
    LOD_TP_0.`LOD_measure_result` AS LOD_3		-- lod_fixed{[area]:sum([order_amt])}
FROM
    (
        SELECT		-- Main query: area, province, sum(order_amt)
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            ADR_T_1_.`province` AS LOD_55512959145CF3,
            SUM(ADR_T_1_.`order_amt`) AS LOD_8BE7507A47AD81
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`,
            ADR_T_1_.`province`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC,
            LOD_55512959145CF3 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (
        SELECT			-- LOD subquery: area, sum(order_amt)
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            sum(ADR_T_1_.`order_amt`) AS LOD_measure_result
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`
    ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`

-- Standard structure
-- lod_fixed{[area]:sum([order_amt])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,
    LOD_TM.`LOD_8BE7507A47AD81` AS LOD_2,
    LOD_TP_0.`LOD_9D09E63F2E93FA` AS LOD_3
FROM
    (
        SELECT
            SUM(ADR_T_1_.`order_amt`) AS LOD_8BE7507A47AD81,
            ADR_T_1_.`province` AS LOD_55512959145CF3,
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`province`,
            ADR_T_1_.`area`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC,
            LOD_55512959145CF3 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (
        SELECT
            LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
            LOD_TL.`LOD_55512959145CF3` AS LOD_55512959145CF3,
            SUM(LOD_TR.`LOD_measure_result`) AS LOD_9D09E63F2E93FA
        FROM
            (
                SELECT
                    ADR_T_1_.`province` AS LOD_55512959145CF3,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`province`,
                    ADR_T_1_.`area`
            ) AS LOD_TL
            INNER JOIN (
                SELECT
                    sum(ADR_T_1_.`order_amt`) AS LOD_measure_result,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`area`
            ) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
        GROUP BY
            LOD_TL.`LOD_07AEF3F2F99A95`,
            LOD_TL.`LOD_55512959145CF3`
    ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
    AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`

Nível INCLUDE

Como mostrar dados no nível da região e a participação da província com maiores vendas em cada região?

Crie uma expressão INCLUDE:

MAX(LOD_INCLUDE{[province]:SUM([order_amt])}) / SUM([order_amt])

Em SQL, use uma subconsulta para calcular os totais de pedidos por região-província e faça um JOIN com a consulta principal:

-- Simplified structure
-- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,		-- area
    LOD_TP_0.`LOD_EC796C51A8ABAB` / LOD_TM.`temp_calculation_0` AS LOD_1  -- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
FROM
    (
        SELECT	-- Main query: area, sum(order_amt)
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            sum(ADR_T_1_.`order_amt`) AS temp_calculation_0
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (		
        SELECT		-- LOD subquery: area, max(order_amt)
            LOD_TP_0.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
            MAX(LOD_TP_0.`LOD_measure_result`) AS LOD_EC796C51A8ABAB
        FROM
            (
                SELECT		-- area, province, sum(order_amt)
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
                    ADR_T_1_.`province` AS LOD_55512959145CF3,
                    SUM(ADR_T_1_.`order_amt`) AS LOD_measure_result
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`area`,
                    ADR_T_1_.`province`
            ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`

      
-- Standard structure
-- MAX(lod_include{[province]:SUM([order_amt])}) / SUM([order_amt])
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
    LOD_TP_0.`LOD_EC796C51A8ABAB` / LOD_TM.`temp_calculation_0` AS LOD_1
FROM
    (
        SELECT
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            sum(ADR_T_1_.`order_amt`) AS temp_calculation_0
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (
        SELECT
            LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
            MAX(LOD_TR.`LOD_measure_result`) AS LOD_EC796C51A8ABAB
        FROM
            (
                SELECT
                    ADR_T_1_.`province` AS LOD_55512959145CF3,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`province`,
                    ADR_T_1_.`area`
            ) AS LOD_TL
            INNER JOIN (
                SELECT
                    SUM(ADR_T_1_.`order_amt`) AS LOD_measure_result,
                    ADR_T_1_.`province` AS LOD_55512959145CF3,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`province`,
                    ADR_T_1_.`area`
            ) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
        GROUP BY
            LOD_TL.`LOD_07AEF3F2F99A95`
    ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`

Nível EXCLUDE

A expressão LOD FIXED especifica diretamente uma dimensão, como área, para obter dados no nível da região. Mas e se você já adicionou área e província ao gráfico? É possível excluir a província e recalcular? Sim. Essa é a ideia por trás das expressões LOD EXCLUDE.

Crie uma expressão EXCLUDE:

LOD_EXCLUDE{[province]:SUM([order_number])}

Em SQL, use uma subconsulta para calcular os totais de pedidos por região e faça um JOIN com a consulta principal:

-- Simplified structure
-- lod_EXCLUDE{[province]:SUM([order_number])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,       -- area
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,       -- province
    LOD_TM.`LOD_140423A9870F07` AS LOD_2,       -- order_number
    LOD_TP_0.`LOD_measure_result` AS LOD_3      -- lod_EXCLUDE{[province]:SUM([order_number])}
FROM
    (
        SELECT      -- Main query: area, province, sum(order_number)
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            ADR_T_1_.`province` AS LOD_55512959145CF3,
            SUM(ADR_T_1_.`order_number`) AS LOD_140423A9870F07
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`,
            ADR_T_1_.`province`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC,
            LOD_55512959145CF3 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (
        SELECT      -- LOD subquery: area, sum(order_number)
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95,
            SUM(ADR_T_1_.`order_number`) AS LOD_measure_result
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`area`
    ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
    AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`

-- Standard structure
-- lod_EXCLUDE{[province]:SUM([order_number])}
SELECT
    LOD_TM.`LOD_07AEF3F2F99A95` AS LOD_0,
    LOD_TM.`LOD_55512959145CF3` AS LOD_1,
    LOD_TM.`LOD_140423A9870F07` AS LOD_2,
    LOD_TP_0.`LOD_90EDFE3F5B628A` AS LOD_3
FROM
    (
        SELECT
            SUM(ADR_T_1_.`order_number`) AS LOD_140423A9870F07,
            ADR_T_1_.`province` AS LOD_55512959145CF3,
            ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
        FROM
            `qbi4test`.`company_sales_record` AS ADR_T_1_
        GROUP BY
            ADR_T_1_.`province`,
            ADR_T_1_.`area`
        ORDER BY
            LOD_07AEF3F2F99A95 ASC,
            LOD_55512959145CF3 ASC
        LIMIT
            0, 20
    ) AS LOD_TM
    INNER JOIN (
        SELECT
            LOD_TL.`LOD_07AEF3F2F99A95` AS LOD_07AEF3F2F99A95,
            LOD_TL.`LOD_55512959145CF3` AS LOD_55512959145CF3,
            SUM(LOD_TR.`LOD_measure_result`) AS LOD_90EDFE3F5B628A
        FROM
            (
                SELECT
                    ADR_T_1_.`province` AS LOD_55512959145CF3,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`province`,
                    ADR_T_1_.`area`
            ) AS LOD_TL
            INNER JOIN (
                SELECT
                    SUM(ADR_T_1_.`order_number`) AS LOD_measure_result,
                    ADR_T_1_.`area` AS LOD_07AEF3F2F99A95
                FROM
                    `qbi4test`.`company_sales_record` AS ADR_T_1_
                GROUP BY
                    ADR_T_1_.`area`
            ) AS LOD_TR ON LOD_TL.`LOD_07AEF3F2F99A95` = LOD_TR.`LOD_07AEF3F2F99A95`
        GROUP BY
            LOD_TL.`LOD_07AEF3F2F99A95`,
            LOD_TL.`LOD_55512959145CF3`
    ) AS LOD_TP_0 ON LOD_TM.`LOD_07AEF3F2F99A95` = LOD_TP_0.`LOD_07AEF3F2F99A95`
    AND LOD_TM.`LOD_55512959145CF3` = LOD_TP_0.`LOD_55512959145CF3`

Exemplos da função FIXED

Uma expressão de nível de detalhe FIXED calcula usando apenas as dimensões especificadas. Ela ignora todas as outras.

Exemplo 1: Valor total de vendas por região

Cenário

Você está analisando pedidos de vendas regionais. Seu conjunto de dados inclui as dimensões região e província. Use FIXED para calcular o valor total de vendas por região. O FIXED ignora todas as outras dimensões, retornando o total correto de vendas regionais.

Procedimento

  1. Crie um campo calculado.

    Expressão do campo: LOD_FIXED{[region]:BI_SUM([order amount])}

    Significado: Soma o valor dos pedidos por região.

    image

  2. Crie um gráfico.

    Este exemplo usa uma tabela cruzada.

    Arraste o campo Regional Amount Sum para a área de colunas. Arraste region e province para a área de linhas. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image.png

    Agora, a soma dos valores regionais permanece constante entre as províncias.

Exemplo 2: Frequência de pedidos por cliente

Descrição do cenário

Um gerente de vendas quer saber quantos clientes fizeram um, dois ou três pedidos — e assim por diante. Analise o comportamento de recompra contando a frequência de pedidos por cliente. Use uma expressão de nível de detalhe para agrupar uma medida por outra.

Este exemplo usa LOD_FIXED para converter a contagem de pedidos em uma dimensão de contagem de clientes. Calcule a frequência de pedidos por cliente.

Procedimento

  1. Crie um campo calculado.

    Expressão do campo: LOD_FIXED{[customer name]:COUNT([order id])}

    Significado: Conta a frequência de compras por cliente.image

  2. Crie um gráfico.

    Este exemplo usa um gráfico de colunas.

    Arraste o campo Purchase Frequency para a área de eixo de categoria/dimensão. Arraste customer name para a área de valor do eixo/medida e defina como contagem distinta. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image.png

Agora, é possível ver que a frequência de compra mais comum é sete. Um cliente fez 58 pedidos.

Exemplo 3: Classificação percentual de lucro regional

Cenário

Um diretor regional de vendas quer saber a participação de cada região no lucro total — e identificar rapidamente os principais contribuintes. Você pode usar Cálculo Avançado → Porcentagem. Ou usar expressões de nível de detalhe para maior flexibilidade.

Este exemplo usa LOD_FIXED para calcular a classificação percentual de lucro regional.

Procedimento

  1. Crie um campo calculado.

    1. Expressão do campo: LOD_FIXED{:SUM([profit amount])}

      Significado: Esta expressão FIXED omite dimensões. Portanto, soma o lucro sem agrupamento.

    2. Divida SUM([profit amount]) pelo resultado do LOD: SUM([profit amount]) / SUM(LOD_FIXED{:SUM([profit amount])}). Isso fornece a participação no lucro de cada região.

      image

  2. Crie um gráfico.

    Neste exemplo, crie um ranking.

    Arraste o campo Profit Share Percentage para a área de métrica/medida. Arraste area para a área de categoria/dimensão. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image.png

Agora, Sul da China e Norte da China aparecem nas primeiras posições. Leste da China e Sudoeste ficam nas últimas — e até apresentam lucro negativo. Os dados do Leste da China parecem ser dados inconsistentes.

Exemplo 4: Contagem anual de novos usuários

Descrição do cenário

Como saber se seu produto tem crescimento positivo? Além de PV e UV, acompanhe a fidelidade do cliente. Usuários que permanecem por muito tempo e continuam comprando demonstram forte aderência ao produto. Use expressões de nível de detalhe para medir isso.

Este exemplo usa LOD_FIXED para calcular a contagem anual de novos usuários.

Procedimento

  1. Crie um campo calculado.

    Expressão do campo: LOD_FIXED{[customer name]:MIN(DATE_FORMAT([buy date], '%Y'))}

    Significado: Encontra o ano do primeiro pedido de cada usuário. Ajuste a granularidade conforme necessário usando funções de data compatíveis com o banco de dados.image

  2. Crie um gráfico.

    Este exemplo usa um gráfico de linhas.

    Arraste o campo Customer First Purchase Year para a área de eixo de categoria/dimensão. Arraste sales amount para a área de valor do eixo/medida. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image.png

Agora, é possível ver que usuários que começaram em 2013 ainda contribuem significativamente. A aderência ao produto permanece alta.

Exemplo 5: Tendência de contagem de novos clientes por ano a partir de detalhes de pedidos

Cenário

Conte clientes únicos por ano de primeira compra. Em seguida, analise a distribuição.

Procedimento

  1. Crie campos calculados.

    1. Campo 1: LOD_FIXED{[customer ID]: min(BI_YEAR([order date]))}

      Nomeie este campo como Customer First Purchase Year. Defina o tipo de dados como dimensão e o tipo de campo como texto.

    2. Campo 2: Customer Count=count(distinct [customer ID])

  2. Crie um gráfico.

    Este exemplo usa um gráfico de colunas. Arraste Customer First Purchase Year para a área de eixo de categoria/dimensão. Arraste Customer Count para a área de eixo de valor/medida. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image

Agora, você vê as contagens anuais de novos clientes. 2021 teve o maior número. As contagens caíram drasticamente depois disso.

Exemplo 6: Distribuição de contagem de clientes por frequência de compra a partir de detalhes de pedidos

Cenário

Conte as compras por cliente. Em seguida, analise a distribuição.

Procedimento

  1. Crie campos calculados.

    1. Campo 1: LOD_FIXED{[customer ID]: count(distinct [order ID])}

      Nomeie este campo como Customer Purchase Frequency. Defina o tipo de dados como dimensão e o tipo de campo como texto.

    2. Campo 2: Customer Count=count(distinct [customer ID])

  2. Crie um gráfico.

    Este exemplo usa um gráfico de colunas. Arraste Customer Purchase Frequency para a área de eixo de categoria/dimensão. Arraste Customer Count para a área de eixo de valor/medida. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image

Neste caso, a contagem de clientes é maior para uma frequência de compra de 3.

Exemplo 7: Comparar valores de pedidos anuais com o ano-chave de 2023

Cenário

Compare os dados de pedidos anuais com um ano-chave — 2023.

Procedimento

  1. Crie um campo calculado.

    sum([order amount])/
    LOD_FIXED{:
    sum(
    case when BI_YEAR([order date]) ='2023' 
    then [order amount] else 
    0 end)} 
    -1

    Detalhamento:

    1. Calcule o valor dos pedidos de 2023: LOD_FIXED{:sum(case when BI_YEAR([order date]) ='2023' then [order amount] else 0 end)}

    2. Compare os valores anuais de pedidos com o valor de 2023: sum([order amount])/[2023 order amount]-1. Nomeie este campo como vs. 2023.

  2. Crie um gráfico.

    Este exemplo usa uma tabela cruzada. Arraste order date (year) para a área de linhas. Arraste order amount e vs. 2023 para a área de colunas. Clique em Update. O sistema atualiza o gráfico automaticamente.

    image

Agora, você vê os valores anuais de pedidos e as comparações com 2023.

Exemplo 8: Análise de dias de lucro e prejuízo por ano e mês

Cenário

Classifique cada dia como lucrativo ou não lucrativo com base no lucro diário. Em seguida, conte os dias por classificação, ano e mês.

Procedimento

  1. Crie campos calculados.

    1. Campo 1:

      case when 
      LOD_FIXED{[order date]:sum([profit])}>0 
      then 'Profitable' 
      else 'Unprofitable' 
      end

      Nomeie este campo como Day Profit/Loss Tag. Defina o tipo de dados como dimensão e o tipo de campo como texto.

      Detalhamento:

      1. Some o lucro por data do pedido: LOD_FIXED{[order date]:sum([profit])}

      2. Se a soma do lucro for > 0, retorne "Profitable". Caso contrário, retorne "Unprofitable": case when [profit sum]>0 then 'Profitable' else 'Unprofitable' end

    2. Campo 2: Days=count(distinct [order date])

    3. Campo 3: Month=BI_MONTH([order date])

  2. Crie gráficos.

    Use dimensões de divisão em gráficos de linha-coluna para criar pequenos múltiplos. Visualize tendências como empilhadas ou categóricas. Veja comparações e padrões claros.

    Este exemplo cria um gráfico de colunas empilhadas para a distribuição de dias de lucro/prejuízo (tendência empilhada). Também cria dois gráficos de área para a distribuição de dias de lucro/prejuízo.

    1. Crie um gráfico de colunas empilhadas. Arraste Month para a área de eixo de categoria/dimensão. Arraste Days para a área de eixo de valor/medida. Arraste Day Profit/Loss Tag para a área de legenda de cor/dimensão. Arraste order date (year) para a área de divisão/dimensão. Clique em Update. O sistema atualiza o gráfico automaticamente.

      image

    2. Crie dois gráficos de área — um para dias não lucrativos e outro para dias lucrativos.

      Em ambos os gráficos, arraste Month para a área de eixo de categoria/dimensão. Arraste Days para a área de eixo de valor/medida. Arraste order date (year) para a área de divisão/dimensão.

      Adicione Day Profit/Loss Tag ao filtro. Defina correspondência exata como "Unprofitable" para o primeiro gráfico. Defina correspondência exata como "Profitable" para o segundo.

      image

      Clique em Update. O sistema atualiza os gráficos automaticamente.

      image

Agora, você vê comparações e tendências claras para dias de lucro/prejuízo por ano e mês.

image

Exemplos da função INCLUDE

Uma expressão de nível de detalhe INCLUDE agrupa cálculos pelas dimensões especificadas. O INCLUDE adiciona mais uma camada de análise sobre a granularidade existente.

Exemplo 1: Valor médio de vendas por cliente

Cenário

Ao analisar vendas de produtos, você precisa do valor médio de vendas por cliente. Use INCLUDE para calcular o valor total de pedidos de cada cliente. Em seguida, use a agregação de média.

Procedimento

  1. Crie um campo calculado.

    Expressão do campo: LOD_INCLUDE{[user id]:SUM([order amount])}

    Significado: Soma o valor dos pedidos por ID de usuário.

    image

  2. Crie um gráfico.

    Este exemplo usa uma tabela cruzada.

    Arraste order amount e Customer Order Total para a área de colunas. Arraste product type para a área de linhas. Defina a agregação de Customer Order Total como Average. Clique em Update. O sistema atualiza o gráfico automaticamente.image.png

Agora, você vê o valor médio de vendas por cliente por tipo de produto.

Exemplo 2: Valor máximo médio de transação por representante de vendas

Cenário

Um diretor de vendas precisa da média da maior transação de cada representante de vendas, agrupada por região — e exibida em um mapa. Use expressões de nível de detalhe para exibir dados no nível da região. Faça drill down para representantes de vendas para ver quais regiões têm bom ou mau desempenho. Em seguida, planeje metas adequadamente.

Este exemplo usa LOD_INCLUDE para calcular o valor máximo médio de transação por representante de vendas.

Procedimento

  1. Crie um campo calculado.

    Expressão do campo: AVG(LOD_INCLUDE{[sales name]:MAX([price])})

    Significado: Adiciona o nome do representante de vendas como dimensão de análise. Em seguida, calcula a média dos valores máximos de transação.

    image

  2. Crie um gráfico.

    Este exemplo usa um mapa colorido.

    1. Arraste Average Maximum Sales Amount per Region para a área de saturação de cor/medida. Arraste area para a área de eixo de região geográfica/dimensão.

    2. Em Style → Blocks, destaque a região com o valor máximo em vermelho.

      image.png

      Clique em Update. O sistema atualiza o gráfico automaticamente.

      image.png

Agora, o Leste da China mostra vendas máximas mais altas. Noroeste e Sudoeste mostram valores mais baixos.

Exemplo 3: Lucro total para regiões onde o valor do pedido excede 500.000

Descrição do cenário

Some os valores dos pedidos por região. Em seguida, calcule o lucro total para regiões onde o valor do pedido excede 500.000.

Procedimento

  1. Crie um campo calculado.

    CASE WHEN LOD_INCLUDE{[region]:BI_SUM([order amount])}>500000 
    then [profit amount] 
    else 0 
    end

    Detalhamento:

    1. Calcule o valor do pedido por região. Nomeie este campo como Region Order Amount: LOD_INCLUDE{[region]:BI_SUM([order amount])}

    2. Encontre regiões onde o valor do pedido excede 500.000 e some seus lucros: CASE WHEN [Region Order Amount]>500000 then [profit amount] else 0 end

    3. Some os resultados (usando SUM ou definindo a agregação do campo do gráfico como Soma) para obter o lucro total das regiões qualificadas.

  2. Crie gráficos.

    Este exemplo usa um scorecard para exibir dados. Você também pode criar uma tabela cruzada para verificar a precisão. No scorecard, arraste o novo campo para a área de métrica/medida do scorecard. Defina a agregação do campo como Soma. Na tabela cruzada, arraste region para a área de linhas. Arraste order amount, profit amount e o novo campo para a área de colunas. Defina a agregação do campo como Soma. Clique em Update. O sistema atualiza os gráficos automaticamente.

    image

    Agora, Nordeste, Leste da China, Norte da China e Sul da China excedem 500.000 em valor de pedidos. Seu lucro total é de 459.000 CNY.

Exemplo 4: Lucro total para regiões onde o valor de pedidos enviados por trem excede 100.000 por tipo de produto

Cenário

Esta é uma evolução do Exemplo 3. Adiciona envio por trem e agrupamento por tipo de produto. Calcule o lucro total para regiões onde o valor de pedidos enviados por trem excede 100.000 por tipo de produto. Isso envolve funções aninhadas. Decomponha-as para maior clareza.

Procedimento

  1. Crie um campo calculado:

    SUM(
    CASE WHEN LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}>100000
    then [profit amount]
    else 0
    end)

    Detalhamento:

    1. Some os valores de pedidos enviados por trem por tipo de produto e região. Nomeie este campo como Product Type–Region Order Amount: LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}

    2. Encontre regiões onde o valor do pedido excede 100.000 e some seus lucros: CASE WHEN [Product Type–Region Order Amount]>100000 then [profit amount] else 0 end

    3. Some os resultados.

  2. Crie gráficos.

    1. Crie dois scorecards. No Scorecard 1, arraste o novo campo para a área de métrica/medida do scorecard. No Scorecard 2, arraste o novo campo para a área de métrica/medida do scorecard e arraste product type para a área de tag/dimensão do scorecard. Clique em Update. O sistema atualiza os gráficos automaticamente.

      image

      Agora, o lucro total para pedidos enviados por trem acima de 100.000 é de 426.000 CNY. Materiais de escritório: 147.200 CNY. Móveis: 0 CNY. Tecnologia: 278.800 CNY.

    2. Crie uma tabela cruzada para verificar a precisão. Arraste product type, shipping method e region para a área de linhas. Arraste order amount, profit amount e o novo campo para a área de colunas. Clique em Update. O sistema atualiza o gráfico automaticamente.

      Para materiais de escritório, pedidos enviados por trem acima de 100.000 ocorrem no Nordeste, Leste da China, Norte da China e Sul da China. Seu lucro total é de 147.200 CNY — correspondendo ao scorecard. Verifique outros tipos de produtos de forma semelhante.

Exemplo 5: Contagem de clientes para regiões onde o valor de pedidos enviados por trem excede 100.000 por tipo de produto

Cenário

Semelhante ao Exemplo 4, mas calcula a contagem de clientes em vez do lucro.

Procedimento

  1. Crie um campo calculado:

    COUNT(DISTINCT(
    CASE WHEN LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}>100000
    then [user id]
    else null
    end))

    Detalhamento:

    1. Some os valores de pedidos enviados por trem por tipo de produto e região. Nomeie este campo como Product Type–Region Order Amount: LOD_INCLUDE{[product type],[region]:sum(if([shipping method]='train',[order amount],0))}

    2. Encontre regiões onde o valor do pedido excede 100.000 e liste seus clientes: CASE WHEN [Product Type–Region Order Amount]>100000 then [user id] else null end

    3. Por fim, use COUNT(DISTINCT()) para contar valores únicos.

  2. Crie um gráfico.

    Este exemplo usa um scorecard. Arraste o novo campo para a área de métrica/medida do scorecard. Clique em Update. O sistema atualiza o gráfico automaticamente.image Agora, a contagem de clientes para pedidos enviados por trem acima de 100.000 é 1.026.

Exemplo 6: Contagem de regiões onde o valor do pedido excede 500.000

Cenário

Semelhante ao Exemplo 3, mas conta regiões em vez de calcular lucro.

Procedimento

  1. Crie um campo calculado:

    COUNT(DISTINCT(
    CASE WHEN LOD_INCLUDE{[region]:sum([order amount])}>500000
    then [region]
    else null
    end))

    Detalhamento:

    1. Calcule o valor do pedido por região. Nomeie este campo como Region Order Amount: LOD_INCLUDE{[region]:sum([order amount])}

    2. Encontre regiões onde o valor do pedido excede 500.000: CASE WHEN [Region Order Amount]>500000 then [region] else null end

    3. Por fim, use COUNT(DISTINCT()) para contar os itens únicos.

  2. Crie gráficos.

    Este exemplo usa um scorecard. Você também pode criar uma tabela cruzada para verificar a precisão. No scorecard, arraste o novo campo para a área de métrica/medida do scorecard. Na tabela cruzada, arraste region para a área de linhas e order amount para a área de colunas. Clique em Update. O sistema atualiza os gráficos automaticamente.

    image

    Agora, quatro regiões excedem 500.000 em valor de pedidos: Nordeste, Leste da China, Norte da China e Sul da China.

Exemplo 7: Valor médio de vendas provinciais por tipo de produto em 2024

Cenário

Calcule o valor médio de vendas provinciais por tipo de produto em 2024.

Procedimento

  1. Crie um campo calculado.

    AVG(
    LOD_INCLUDE{[product type],[province]:
    SUM(IF(YEAR([order date])='2024',[order amount],0))
    }
    )

    Detalhamento:

    1. Calcule o valor do pedido para pedidos de 2024. Nomeie este campo como 2024 Order Amount: IF(YEAR([order date])='2024',[order amount],0)

    2. Some as vendas por tipo de produto e província: LOD_INCLUDE{[product type],[province],SUM[2024 Order Amount]}

    3. Calcule a média.

  2. Crie gráficos.

    Este exemplo usa um scorecard. Você também pode criar uma tabela cruzada para verificar a precisão. No scorecard, arraste o novo campo para a área de métrica/medida do scorecard e arraste product type para a área de tag/dimensão do scorecard. Na tabela cruzada, arraste product type para a área de linhas e order amount para a área de colunas. Filtre pelos dados de 2024. Clique em Update. O sistema atualiza os gráficos automaticamente.

    image

    Agora, o valor de pedidos de materiais de escritório em 2024 é 235.600 CNY. A venda provincial média é 235.600 ÷ 31 províncias = 7.600 CNY. Outros tipos de produtos seguem a mesma lógica.

Exemplo 8: Contagem média provincial de clientes por tipo de produto em 2024

Cenário

Semelhante ao Exemplo 7, mas calcula a contagem média de clientes em vez da média de vendas.

Procedimento

  1. Crie um campo calculado.

    AVG(
    LOD_INCLUDE{[product type],[province]:
    COUNT(DISTINCT(IF(YEAR([order date])='2024',[user id],null)))
    }
    )

    Detalhamento:

    1. Conte clientes para pedidos de 2024. Nomeie este campo como 2024 Customer Count: IF(YEAR([order date])='2024',[user id],null)

    2. Conte clientes por tipo de produto e província: LOD_INCLUDE{[product type],[province],SUM[2024 Customer Count]}

    3. Calcule a média.

  2. Crie gráficos.

    Este exemplo usa um scorecard. Você também pode criar uma tabela cruzada para verificar a precisão. No scorecard, arraste o novo campo para a área de métrica/medida do scorecard e arraste product type para a área de tag/dimensão do scorecard. Na tabela cruzada, arraste product type para a área de linhas e Product Type Provincial Customer Count para a área de colunas. Filtre pelos dados de 2024. Clique em Update. O sistema atualiza os gráficos automaticamente.

    Product Type Provincial Customer Count=LOD_INCLUDE{[product type],[province]:COUNT(DISTINCT([user id]))}

    image

    Agora, a contagem provincial de clientes de materiais de escritório em 2024 é 212. A contagem média provincial de clientes é 212 ÷ 31 províncias = 6,839. Outros tipos de produtos seguem a mesma lógica.

Exemplo 9: Taxa de atingimento de meta de produto e diferença de lucro por província

Cenário

Com metas de lucro provinciais conhecidas, analise quais produtos atingem ou não as metas.

Calcule as diferenças de lucro por produto no nível da província. Conte produtos que atingem as metas. Conte o total de produtos. Calcule a taxa.

Este cenário requer dois gráficos vinculados. Clique nas estatísticas de produtos à esquerda para ver os detalhes do produto à direita.

Procedimento

  1. Crie campos calculados.

    1. Campo 1: Product Profit Target Gap

      LOD_INCLUDE{[product] : sum([profit]-[profit target])}.

      Significado: Calcula a diferença da meta de lucro por produto.

    2. Campo 2: Target Achievement Ratio

      count(distinct 
      case when [Product Profit Target Gap]>0 
      then [product] 
      else null end)
      /count(distinct [product])

      Detalhamento:

      1. Conte produtos distintos onde a diferença da meta de lucro é > 0. Nomeie como Produtos que Atingem Metas: count(distinct case when [Product Profit Target Gap]>0 then [product] else null end)

      2. Conte o total distinto de produtos: count(distinct [product])

      3. Divida os dois: [Products That Meet Targets]/[Total Products]. Isso fornece a Target Achievement Ratio.

  2. Crie gráficos.

    Este exemplo cria dois gráficos com interação.

    1. Crie um gráfico de barras para Product Profit Target Gap. Arraste product para a área de eixo de categoria/dimensão. Arraste Product Profit Target Gap para a área de eixo de valor/medida. Clique em Update. O sistema atualiza o gráfico automaticamente.

      image

    2. Crie um gráfico de barras para Target Achievement Ratio. Arraste province para a área de eixo de categoria/dimensão. Arraste Target Achievement Ratio para a área de eixo de valor/medida. Clique em Update. O sistema atualiza o gráfico automaticamente.

      image

    3. Configure a interação entre os dois gráficos de barras.

      Nota

      Neste exemplo, ambos os gráficos usam o mesmo conjunto de dados. Se a interação automática estiver ativada, os gráficos se vinculam automaticamente. Se desativada, configure a interação manual.

      Para obter detalhes, consulte Interação.

      Visualização da interação.3.gif

  3. Agora, você vê o progresso da meta de lucro provincial e quais produtos atingem ou não as metas.

    Exemplo 10: Avaliação de desempenho de lojas por região

    Cenário

    Usando dados de vendas e lucro bruto no nível da loja, calcule o total de vendas e lucro bruto por região. Calcule também as vendas médias e o lucro bruto por loja. Use filtros para ver o desempenho nos níveis regional ou sub-regional.

    Procedimento

    1. Crie campos calculados.

      1. Campo 1: Store Gross Profit=LOD_INCLUDE{[store name]:sum([gross profit])}

      2. Campo 2: Store Sales Amount=LOD_INCLUDE{[store name]:sum([sales amount])}

    2. Crie um gráfico.

      Este exemplo usa uma tabela cruzada com formatação condicional.

      1. Na tabela cruzada, arraste Parent Region e Sub-region para a área de linhas. Na área de colunas, adicione dois campos Store Gross Profit — um definido como Média, outro como Soma. Adicione dois campos Store Sales Amount — um definido como Média, outro como Soma.

        image

      2. Rotule Store Gross Profit (Average) e Store Sales Amount (Average) como Per Store. Rotule Store Gross Profit (Sum) e Store Sales Amount (Sum) como Total.

      3. Em Style → Cell → Metric Grouping, defina Metric Grouping.

        image

      4. Aplique formatação condicional para estética. Este exemplo configura todas as quatro colunas da seguinte forma:image

      5. Clique em Update. O sistema atualiza o gráfico automaticamente.image

    Agora, você vê o total e as vendas e lucro bruto por loja para cada região.

    Exemplo 11: Avaliação regional baseada no desempenho provincial

    Cenário

    Por província, calcule as vendas por região. Conte províncias onde as vendas excedem um limiar (definido via filtro). Calcule também o total de clientes nessas províncias e a média de clientes por província. Altere o limiar para ver resultados atualizados.

    Nota

    Este exemplo usa um espaço reservado de valor. Para detalhes de uso, consulte Espaços Reservados de Valor.

    Procedimento

    1. Crie campos calculados.

      1. Campo 1: Qualified Province Count

        count(distinct 
        case when LOD_INCLUDE{[province]:sum([order amount])} > $val{ord_amt_level} 
        then [province] 
        else null
        end)

        Detalhamento:

        1. Calcule o valor do pedido por província: LOD_INCLUDE{[province]:sum([order amount])}. Nomeie como Province Order Amount.

        2. Retorne a província se Province Order Amount > espaço reservado de valor ord_amt_level. Caso contrário, retorne null: case when [Province Order Amount]> $val{ord_amt_level} then [province] else null end. Nomeie como Qualified Provinces.

        3. Conte províncias qualificadas distintas: count(distinct [Qualified Provinces]).

      2. Campo 2: Total Customers in Qualified Provinces

        count(distinct 
        case when lod_include{[province]:sum([order amount])} > $val{ord_amt_level} 
        then [customer ID] 
        else null 
        end)

        Detalhamento:

        1. Calcule o valor do pedido por província: LOD_INCLUDE{[province]:sum([order amount])}. Nomeie como Province Order Amount.

        2. Retorne o ID do cliente se Province Order Amount > espaço reservado de valor ord_amt_level. Caso contrário, retorne null: case when [Province Order Amount]> $val{ord_amt_level} then [customer ID] else null end. Nomeie como Customers in Qualified Provinces.

        3. Conte Clientes sob a Província distintos. Fórmula: count(distinct [Customers under Province])

      3. Campo 3: Average Customers Per Province = [Total Customers in Qualified Provinces] ÷ [Qualified Province Count].

    2. Crie gráficos.

      1. Crie uma tabela cruzada. Arraste region para a área de linhas. Arraste Province Count, Province Customer Count e Average Customers Per Province para a área de colunas.

      2. Adicione um filtro de consulta interna. Defina o filtro como valor de vendas por província. Vincule ao espaço reservado de valor ord_amt_level. Defina o valor padrão como 100000.image

      3. Clique em Update. O sistema atualiza o gráfico automaticamente.

        image

    Agora, altere o valor de vendas por província para ver resultados atualizados.4.gif

    Exemplos da função EXCLUDE

    Uma expressão de nível de detalhe EXCLUDE calcula após remover as dimensões especificadas.

    Exemplo 1: Participação de vendas da província dentro da região

    Cenário

    Ao analisar vendas no nível da província dentro de uma região, você também precisa do total de vendas da região e da participação de vendas de cada província. Use EXCLUDE para calcular as vendas regionais excluindo a província atual. Em seguida, some para obter o total da região.

    Procedimento

    1. Crie um campo calculado.

      Expressão do campo: LOD_EXCLUDE{[province]:SUM([order amount])}

      Significado: Calcula as vendas regionais excluindo a província atual.

      image

    2. Crie um gráfico.

      Este exemplo usa uma tabela cruzada. Arraste order amount e Regional Total Sales para a área de colunas. Arraste region e province para a área de linhas. Clique em Update. O sistema atualiza o gráfico automaticamente.

      image.png

    Agora, você vê tanto os valores de pedidos no nível da província quanto o total de vendas regionais.

    Exemplo 2: Diferença entre médias de área de vendas e zona de batalha

    Cenário

    Uma empresa de vendas tem sete zonas de batalha nacionais. Cada zona de batalha contém várias áreas de vendas por província. No final do ano, compare rapidamente o lucro médio de vendas de cada província com a média geral de sua zona de batalha. Identifique zonas com melhor e pior desempenho. Use expressões de nível de detalhe e formatação condicional para criar este relatório.

    Este exemplo usa LOD_EXCLUDE para calcular a diferença entre médias de área de vendas e zona de batalha.

    Procedimento

    1. Crie um campo calculado.

      1. Expressão do campo: AVG(LOD_EXCLUDE{[province]:AVG([price])})

        Significado: Partindo da configuração original, exclua regiões de vendas da granularidade de agregação e calcule a média de vendas nas granularidades restantes. Esta expressão calcula a média de vendas para cada região, como Leste da China.

      2. Subtraia o resultado do LOD de AVG([price]): AVG([price]) - AVG(LOD_EXCLUDE{[province]:AVG([price])}). Isso fornece a diferença entre cada área de vendas e a média de sua zona de batalha.

        image

    2. Crie um gráfico.

      Este exemplo usa uma tabela cruzada.

      1. Arraste o campo Province Average Difference para a área de colunas. Arraste area e province para a área de linhas.

      2. Em Style → Conditional Formatting, defina este campo como vermelho se > 0 e verde se < 0.

        image.png

      3. Clique em Update. O sistema atualiza o gráfico automaticamente.

        image.png

    Agora, Xangai, Anhui, Jiangsu e Fujian superam a média do Leste da China. Xangai lidera. Shandong, Jiangxi e Zhejiang ficam abaixo e precisam melhorar.

    Regras de condição de filtro

    LOD_FIXED + Filtros Externos

    • Resultados não afetados por filtros

      Expressão do campo LOD_FIXED_1: LOD_FIXED{[region]: SUM([order amount])}

      Filtro: shipping method = "truck"

      Explicação do resultado: Conforme mostrado abaixo, o valor total de pedidos da região Nordeste é 527.400 CNY. Sem filtro externo — ou com shipping method = "truck" — o total do Nordeste permanece 527.400 CNY. Filtros não afetam os resultados.

      Conclusão: Filtros não relacionados às dimensões de agregação do LOD não afetam os resultados.

      image

    • Resultados afetados por filtros

      Expressão do campo LOD_FIXED_2: LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount])}

      Filtro: shipping method = "truck"

      Explicação do resultado: Conforme mostrado abaixo, o total Nordeste–materiais de escritório é 150.800 CNY — soma de caminhão (35.540 CNY), trem (103.100 CNY) e aéreo (12.110 CNY). Com shipping method = "truck", Nordeste–materiais de escritório torna-se 35.540 CNY — o valor para Nordeste–materiais de escritório–caminhão.

      Conclusão: Filtros correspondentes às dimensões de agregação do LOD afetam os resultados devido à agregação secundária.

      image

    LOD + Filtros Internos

    Conclusão: Filtros internos correspondentes à granularidade do LOD aplicam-se a todos os dados relacionados. Caso contrário, aplicam-se apenas ao campo LOD.

    • LOD_FIXED

      • Expressão do campo LOD_FIXED_3: LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount]): [order level]='intermediate'}

        Resultado do cálculo: Conforme mostrado na figura a seguir, o valor do pedido para região Nordeste → Materiais de escritório → Cartão grande é 35.070. Este valor representa dados filtrados para pedidos com nível de pedido Intermediário — ou seja, o valor do pedido para região Nordeste → Materiais de escritório → Cartão grande → Intermediário.

        image

      • Expressão do campo LOD_FIXED_4: LOD_FIXED{[region], [product type], [shipping method]: SUM([order amount]): [shipping method]='truck'}

        Resultado: Conforme mostrado abaixo, o valor do pedido Nordeste–materiais de escritório–caminhão é 355.400 CNY. Quando filtros internos correspondem à granularidade do LOD, o LOD_FIXED filtra por envios via caminhão.

        image

    • LOD_INCLUDE

      LOD_EXCLUDE e LOD_INCLUDE seguem a mesma lógica. Este exemplo usa LOD_INCLUDE.

      image

      • Expressão do campo LOD_INCLUDE_1: LOD_INCLUDE{: SUM([order amount]): [order level]='intermediate'}

        Resultado do cálculo: Conforme mostrado na figura abaixo, tomando a região Nordeste como exemplo, o valor do pedido para 'Região Nordeste-Materiais de Escritório-Cartão Grande' é 35.070. Este valor é obtido filtrando por pedidos com nível 'Médio', representando especificamente 'Região Nordeste-Materiais de Escritório-Cartão Grande-Médio'.

      • Expressão do campo LOD_INCLUDE_2: LOD_INCLUDE{: SUM([order amount]): [shipping method]='truck'}

        Resultado: Conforme mostrado abaixo, o valor do pedido Nordeste–materiais de escritório–caminhão é 355.400 CNY. Quando filtros internos correspondem à granularidade do LOD, o LOD_INCLUDE filtra por envios via caminhão.