Quando tem autorização para criar campos personalizados, pode criar grupos personalizados ad hoc para dimensões sem usar funções lógicas em expressões do Looker nem desenvolver lógicaCASE WHENnos parâmetrossqlou nos campostype: case.
Também pode criar intervalos personalizados ad hoc para dimensões de tipo numérico sem ter de usar funções lógicas em expressões do Looker nem desenvolver type: tier campos LookML quando tem autorização para criar campos personalizados.
A segmentação em grupos pode ser muito útil para criar dimensões de agrupamento personalizadas no Looker.
Existem três formas de criar intervalos no Looker:
- Usar o tipo
tierdimension - Usar o parâmetro
case - Usar uma declaração
CASE WHENSQL no parâmetroSQLde um campo LookML
Usar tier para a segmentação em grupos
Para criar intervalos de números inteiros, podemos simplesmente definir o tipo dimension como tier:
dimension: users_lifetime_orders_tier {
type: tier
tiers: [0,1,2,5,10]
sql: ${users_lifetime_orders} ;;
}
Pode usar o parâmetro style para personalizar a forma como os seus níveis aparecem quando explora. As quatro opções para style são as seguintes:
Por exemplo:
dimension: age_tier {
type: tier
tiers: [0,10,20,30,40,50,60,70,80]
style: integer
sql: ${age} ;;
}
O parâmetro style é o predefinido e tem o formato Tx[x,x], em que Tx indica o número do nível e [x,x] indica o intervalo.classic A imagem seguinte é uma tabela de dados de exploração com a Contagem de utilizadores agrupada por Idade dos utilizadores:
A imagem seguinte mostra exemplos das outras opções de parâmetros style:
-
interval— Com o formato[x,x], que indica o valor mais baixo e o valor mais elevado de um nível -
integer— Com o formatox to x, que indica o valor mais baixo e o valor mais elevado de um nível -
relational: com o formato>= x and <x, que indica que um valor é superior ou igual ao valor do nível mais baixo e inferior ao valor do nível mais alto
Aspetos a considerar
A utilização de tier em conjunto com o preenchimento de dimensões pode resultar em grupos de níveis inesperados.
Por exemplo, uma dimensão type: tier, Faixa etária, apresenta intervalos de faixas para Inferior a 0 e 0 a 9 quando o preenchimento de dimensões está ativado, embora os dados não incluam valores de idade para esses intervalos:
Quando o preenchimento de dimensões está desativado para Faixa etária, os grupos refletem com maior precisão os valores de idade disponíveis nos dados, começando pelo grupo 10 a 19:
Pode ativar ou desativar o preenchimento de dimensões passando o cursor do rato sobre o nome da dimensão na análise detalhada, clicando no ícone de roda dentada ao nível do campo e selecionando Remover valores de níveis preenchidos para desativar ou Preencher valores de níveis em falta para ativar.
Saiba mais sobre o Looker tiers na página de documentação Tipos de dimensões, filtros e parâmetros.
Usar case para a segmentação em grupos
Pode usar o parâmetro case para criar grupos com nomes personalizados e ordenação personalizada. O parâmetro case é recomendado para um conjunto fixo de grupos, uma vez que pode ajudar a controlar a forma como os valores são apresentados, ordenados e usados em filtros e visualizações da IU. Por exemplo, com case, um utilizador pode selecionar apenas os valores de contentores definidos num filtro.
Para criar grupos com case, pode definir uma dimensão, como um grupo para valores de encomendas:
dimension: order_amount_bucket {
case: {
when: {
sql: ${order_amount} <= 50;;
label: "Small"
}
when: {
sql: ${order_amount} > 50 AND ${order_amount} <= 150;;
label: "Medium"
}
when: {
sql: ${order_amount} > 150;;
label: "Large"
}
else:"Unknown"
}
}
Normalmente, o parâmetro case ordena os valores pela ordem em que os grupos são apresentados. Para a dimensão order_amount_bucket, a ordem dos grupos é Pequeno, Médio e Grande:
Se quiser ordenar alfanumericamente, adicione o parâmetro alpha_sort à dimensão, da seguinte forma:
dimension: order_amount_bucket {
alpha_sort: yes
case: {
when: {
sql: ${order_amount} <= 50;;
label: "Small"
}
when: {
sql: ${order_amount} > 50 AND ${order_amount} <= 150;;
label: "Medium"
}
when: {
sql: ${order_amount} > 150;;
label: "Large"
}
else:"Unknown"
}
}
Para dimensões em que são desejados muitos valores distintos no resultado (isto requer que defina cada resultado com uma declaração WHEN ou ELSE) ou quando quiser implementar uma declaração ELSE mais complexa, recomendamos que use um CASE WHEN SQL, abordado na secção seguinte.
Leia mais acerca do parâmetro case na página de documentação Parâmetros de campo.
Usar SQL CASE WHEN para a criação de grupos
Recomendamos uma declaração SQL CASE WHEN para a segmentação em grupos mais complexa ou para a implementação de uma declaração ELSE mais detalhada.
Por exemplo, pode querer usar métodos de agrupamento diferentes, consoante o destino de uma encomenda. Pode usar uma declaração SQL CASE WHEN para criar uma dimensão de agrupamento composta, em que a declaração THEN devolve dimensões em vez de strings:
dimension: compound_buckets {
sql:
CASE
WHEN ${orders.destination} = 'US' THEN ${us_buckets}
WHEN ${orders.destination} = 'CA' THEN ${canada_buckets}
ELSE ${intl_buckets}
END ;;
}