Como dimensionar uma medida no Looker

Como regra geral no SQL (e, por extensão, no Looker), não é possível agrupar uma consulta pelos resultados de uma função de agregação (representada no Looker como medidas). Só é possível agrupar por campos não agregados (representados no Looker como dimensões). Se você tentar agregar uma medida no Looker, o seguinte erro será exibido:

Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.

E se você precisar de uma maneira de mudar uma medida (COUNT, SUM, AVG, MAX etc.) em uma dimensão para agrupá-la (como uma SUM de uma COUNT ou um AVG de SUM), filtrar por ela (na cláusula WHERE em vez de HAVING) ou pivot nela em uma Análise?

Como usar tabelas derivadas para dimensionar uma medida

Internamente, no Looker, a solução é chamada de dimensionar uma medida. Isso ocorre porque você redefine uma medida como uma dimensão. Isso é feito criando uma tabela derivada que inclui a medida que você quer dimensionar na definição SQL dela.

O processo

O exemplo a seguir é baseado em um conjunto de dados de e-commerce de amostra. O objetivo deste exemplo é criar uma medida type: average com base em uma medida atual de Receita total type: sum.

As etapas a seguir descrevem como gerar uma tabela derivada com base em SQL. É possível criar uma tabela derivada baseada em LookML, também conhecida como tabela derivada nativa (NDT, na sigla em inglês), como alternativa ao SQL.
  1. Para começar, configure uma Consulta do Explore. Escolha os campos apropriados, incluindo a medida que você quer dimensionar.

    No exemplo de caso de uso, a tabela Dados mostra a Receita total agrupada por Estado dos usuários e ID dos usuários:

  2. Selecione Abrir no SQL Runner na guia SQL da tabela Dados para abrir a consulta no SQL Runner:

  3. Depois de executar a consulta no SQL Runner (clicando no botão Executar) e confirmar os resultados, escolha a opção Add to Project no menu de engrenagem do SQL Runner para abrir o pop-up Add to Project. Nesse ponto, é necessário remover qualquer cláusula de limite de linha no SQL da tabela derivada para garantir que todos os resultados pretendidos sejam incluídos na consulta.

    Também é possível escolher Obter tabela derivada do LookML no menu para copiar e colar manualmente o LookML gerado no projeto.
  4. No pop-up Adicionar ao projeto, selecione um nome na lista suspensa Projeto, insira um nome para o arquivo derivado de visualização em tabela e selecione Adicionar.
  5. Agora que a tabela derivada está em um arquivo de visualização, é possível criar uma medida que agregue a medida dimensionalizada. Por exemplo, agora você pode criar uma medida type: average para a nova dimensão de receita total, order_items_total_revenue:
          dimension: order_items_total_revenue {
            type:  number
            sql: ${TABLE}.order_items.total_revenue ;;
            value_format_name: usd
          }
    
          measure: average_revenue {
            type:  average
            sql:  ${order_items_total_revenue} ;;
            value_format_name: usd
          }
        
  6. Verifique novamente se uma chave primária está definida na tabela derivada.
  7. Junte-se à nova visualização na Análise original (ou crie uma) para criar consultas e conteúdo com os novos campos.

Conclusão

Dimensionar as medidas com as tabelas derivadas do Looker desbloqueia novos recursos e possibilita a geração de mais insights com seus dados. Com a capacidade de agrupar por uma medida dimensionalizada, filtrar por ela em uma cláusula WHERE (em vez de HAVING), fazer a rotação e criar outras dimensões com base nela, você pode levar suas consultas do Explore e seu conteúdo para a próxima dimensão.

Acesse a página de documentação Tabelas derivadas para mais informações sobre como criar e usar tabelas derivadas, além de considerações e dicas de otimização de desempenho.