0
respostas

[Dúvida] Dúvida na lógica de negócio

Antes de tudo, notei que a transcrição do vídeo está desatualizada em relação ao conteúdo apresentado. Ela termina como se o professor tivesse parado no ensino de um DISTINCTCOUNT(revenda), porém a medida vai além disso.

Parte onde a transcrição do vídeo para

RETURN
    CALCULATE (
        DISTINCTCOUNT ( fPrecos[ID Revenda] )
    )

Até onde a medida do professor realmente vai

RETURN
    CALCULATE (
        DISTINCTCOUNT ( fPrecos[ID Revenda] ),
        FILTER (
            fPrecos,
            fPrecos[ID Produto] = 1
                && fPrecos[Valor de Venda] > vMediaNacional
        )
    )

Minha dúvida

A pergunta que o vídeo se propõe a responder é:

“Quantas revendas vendem gasolina acima da média nacional?”

Dito isso, gostaria de levantar uma discussão sobre se a medida construída pelo professor realmente atende a essa pergunta, pelo menos do ponto de vista semântico.

A medida apresentada no vídeo é:

Revendas acima da média = 
VAR vMediaNacional =
    CALCULATE (
        AVERAGE ( fPrecos[Valor de Venda] ),
        dProdutos[Produto] = "GASOLINA",
        ALL ( fPrecos )
    )
RETURN
    CALCULATE (
        DISTINCTCOUNT ( fPrecos[ID Revenda] ),
        FILTER (
            ALL ( fPrecos ),
            fPrecos[ID Produto] = 1
                && fPrecos[Valor de Venda] > vMediaNacional
        )
    )

Do jeito que está, pelo o que eu entendi, a medida conta as revendas que tiveram ao menos uma venda acima da média nacional, e não necessariamente revendas cujo preço médio está acima da média nacional.

Isso até se adequa literalmente à pergunta proposta, porém fico em dúvida se é a resposta mais correta, principalmente porque, no exemplo final do vídeo, o professor compara em um gráfico:

  • a linha da média nacional, com
  • os valores médios de cada revenda

Ou seja, ali temos efetivamente uma comparação de médias, não uma análise de ocorrências pontuais.

Dessa forma, entendo que a pergunta mais coerente com a análise apresentada seria algo como:

“Quantas revendas têm preço médio acima da média nacional?”
e não literalmente
“Quantas revendas vendem gasolina acima da média nacional?”

Adaptação da medida

Com isso em mente, fiz uma adaptação da medida para calcular quantas revendas possuem preço médio acima da média nacional, e acredito que essa versão esteja mais alinhada com a análise visual apresentada no vídeo:

Revendas acima da média = 
VAR vMediaNacional =
    CALCULATE (
        AVERAGE ( fPrecos[Valor de Venda] ),
        dProdutos[Produto] = "GASOLINA",
        ALL ( fPrecos )
    )
RETURN
    COUNTROWS (
        FILTER (
            VALUES ( fPrecos[ID Revenda] ),
            CALCULATE (
                AVERAGE ( fPrecos[Valor de Venda] ),
                fPrecos[ID Produto] = 1
            ) > vMediaNacional
        )
    )

Resultados obtidos

  • Revendas com preço médio acima da média nacional: 3255
  • Revendas com ao menos uma venda acima da média nacional: 4185

São métricas diferentes, ambas válidas, mas que respondem perguntas de negócio distintas.