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, vai aparecer o seguinte erro:
Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.
E se você precisar mudar uma medida (COUNT, SUM, AVG, MAX etc.) para uma dimensão, para que possa agrupar e agregar (como uma soma de uma contagem ou uma média de uma soma), filtrar (na cláusula WHERE, em vez de uma cláusula HAVING) ou pivotar em uma Análise detalhada?
Usar tabelas derivadas para dimensionar uma medida
Internamente no Looker, a solução é chamada de dimensionalização de 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.
O processo
O exemplo a seguir é baseado em um 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. Você pode criar uma tabela derivada com base no LookML, também conhecida como tabela derivada nativa (NDT), como uma alternativa ao SQL.
- Comece configurando uma consulta da seção "Explorar". Escolha os campos apropriados, incluindo a medida que você quer dimensionar. No exemplo de caso de uso, a tabela Dados da Análise detalhada mostra a Receita total agrupada por Estado dos usuários e ID dos usuários:
- Escolha Abrir no SQL Runner na guia SQL na tabela Dados para abrir a consulta no SQL Runner:
-
Depois de executar a consulta no SQL Runner (clicando no botão Run) 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. Neste ponto, é necessário remover qualquer cláusula de limite de linha no SQL da tabela derivada para garantir que todos os resultados desejados sejam incluídos na consulta.
Você também pode escolher Acessar a tabela derivada do LookML no menu para copiar e colar o LookML gerado no projeto manualmente.
- No pop-up Adicionar ao projeto, selecione um nome de projeto no menu suspenso Projeto, insira um nome para o arquivo de visualização em tabela derivada e selecione Adicionar.
-
Agora que a tabela derivada está em um arquivo de visualização, é possível criar uma medida que agrega a medida dimensional. Por exemplo, agora é possível criar uma métrica
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 }
- Verifique se uma chave primária está definida na tabela derivada.
- 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
A dimensionalização de medidas com tabelas derivadas do Looker desbloqueia novos recursos e permite gerar mais insights com seus dados. Com a capacidade de agrupar por uma medida dimensional, filtrar por ela em uma cláusula WHERE (em vez de HAVING), girar e criar outras dimensões com base nela, você pode levar suas consultas e conteúdo da Análise detalhada 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.