Como dimensionalizar uma medição no Looker

Como regra geral no SQL e, por extensão, no Looker, não é possível agrupar uma consulta por os resultados de uma função agregada (representado no Looker como medidas). Só é possível agrupar por campos não agregados (representados no Looker como dimensões). Se você tentar agregar uma medição no Looker, o seguinte vai aparecer: error:

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

E se você precisar de uma maneira de alterar uma medida (COUNT, SUM, AVG, MAX etc.) para uma dimensão, para que você possa agrupar por ela para agregá-la (como uma SUM de COUNT ou AVG de uma SUM), filter por ele (na cláusula WHERE em vez de uma cláusula HAVING) ou mudar nele em uma Análise?

Como usar tabelas derivadas para dimensionalizar uma medida

Internamente, no Looker, a solução é chamada de dimensionalização de uma medida. Isso é porque você redefine uma medida como uma dimensão. Isso é alcançado ao criar tabela derivada que inclua a medida que você quer dimensionalizar no SQL definição.

O processo

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

As etapas a seguir descrevem como gerar uma tabela derivada baseada em SQL. É possível criar uma tabela derivada baseada no LookML, também conhecida como tabela derivada nativa (NDT), como alternativa ao SQL.
  1. Para começar, configure uma consulta da Análise. Escolha os campos apropriados, incluindo a medida que você quer dimensionalizar.

    No exemplo de caso de uso, a tabela Dados da análise apresenta 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 Adicionar ao projeto no menu de engrenagem do SQL Runner para abrir o pop-up Adicionar ao projeto. Neste ponto, você precisa remover qualquer cláusula de limite de linha da tabela do SQL da tabela para garantir que todos os resultados desejados sejam incluídos na consulta.

    Também é possível escolher Acessar o LookML de tabela derivada no menu para copiar e colar manualmente o LookML gerado no projeto.
  4. No pop-up Adicionar ao projeto, selecione um nome de projeto no menu suspenso Projeto, insira um nome para o arquivo de visualização de tabela derivada e selecione Adicionar.
  5. Agora que a tabela derivada está em um arquivo de visualização, você pode criar uma medição que agrega a medida dimensional. Por exemplo, agora é possível 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 se um chave primária é definida na tabela derivada.
  7. Junte a nova visualização à Análise original (ou crie uma nova) para poder criar consultas e conteúdo com os novos campos.

Conclusão

O dimensionamento de medidas com as tabelas derivadas do Looker disponibiliza novos recursos e fornece o poder de obter mais informações com seus dados. Com a habilidade para agrupar por uma medida dimensional, filtrar por ela em uma cláusula WHERE (em vez de HAVING), dinamizar e criar outras dimensões com base nele, você pode levar suas consultas e conteúdo da ferramenta Analisar para a próxima dimensão.

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