Agrupamiento en Looker

Cuando tienes permiso para crear campos personalizados, puedes crear grupos personalizados ad hoc para las dimensiones sin usar funciones lógicas en expresiones de Looker ni desarrollar lógica CASE WHEN en parámetros sql o campos type: case.
También puedes crear intervalos personalizados ad hoc para dimensiones de tipo numérico sin necesidad de usar funciones lógicas en expresiones de Looker ni desarrollar campos de type: tier LookML cuando tienes permiso para crear campos personalizados.

El agrupamiento puede ser muy útil para crear dimensiones de agrupación personalizadas en Looker.

Existen tres formas de crear buckets en Looker:

  1. Usa el tipo dimension tier
  2. Usa el parámetro case
  3. Usa una instrucción CASE WHEN de SQL en el parámetro SQL de un campo de LookML

Usa tier para el agrupamiento

Para crear buckets de números enteros, simplemente podemos definir el tipo dimension como tier:

dimension: users_lifetime_orders_tier {
  type: tier
  tiers: [0,1,2,5,10]
  sql: ${users_lifetime_orders} ;;
}

Puedes usar el parámetro style para personalizar cómo se muestran tus niveles cuando exploras. Estas son las cuatro opciones para style:

  1. classic
  2. integer
  3. interval
  4. relational

Por ejemplo:

dimension: age_tier {
  type: tier
  tiers: [0,10,20,30,40,50,60,70,80]
  style: integer
  sql: ${age} ;;
}

El parámetro classic de style es el predeterminado y toma el formato Tx[x,x], en el que Tx indica el número de nivel y [x,x], el rango. En la siguiente imagen, se muestra una tabla de datos de Explorar con la métrica Cantidad de usuarios agrupada por Edad de los usuarios:

El principal nivel de edad de los usuarios disponible en la tabla de datos es T02[10,20], que indica un recuento de 808 usuarios de entre 10 y 20 años.

En la siguiente imagen, se muestran ejemplos de las otras opciones del parámetro style:

  • interval: Con el formato [x,x], que indica el valor más bajo y el más alto de un nivel
  • integer: Con el formato x to x, que indica el valor más bajo y el más alto de un nivel
  • relational: Con el formato >= x and <x, que indica que un valor es mayor o igual que el valor de nivel más bajo y menor que el valor de nivel más alto

Aspectos para tener en cuenta

El uso de tier junto con relleno de dimensión puede generar buckets de nivel inesperados.

Por ejemplo, una dimensión type: tier, Nivel de edad, mostrará los buckets de nivel Inferior a 0 y 0 a 9 cuando el relleno de dimensiones esté habilitado, aunque los datos no incluyen los valores de edad de esos buckets:

Cuando el relleno de dimensiones está inhabilitado para Nivel de edad, los buckets reflejan con mayor precisión los valores de edad disponibles en los datos, a partir del bucket 10 a 19:

Para habilitar o inhabilitar el relleno de dimensiones, coloca el cursor sobre el nombre de la dimensión en la exploración, haz clic en el ícono de ajustes a nivel del campo y selecciona Quitar los valores de nivel completados para inhabilitarlos, o bien selecciona Rellena los valores de nivel faltantes para habilitarlo.

Obtén más información sobre Looker tiers en la página de documentación Dimensiones, filtro y tipos de parámetros.

Usa case para el agrupamiento

Puedes usar el parámetro case para crear buckets con nombres personalizados y ordenamiento personalizado. Se recomienda el parámetro case para un conjunto fijo de buckets, ya que puede ayudar a controlar la forma en que se presentan, ordenan y usan los valores en los filtros y las visualizaciones de la IU. Por ejemplo, con case, un usuario podrá seleccionar solo los valores de bucket definidos en un filtro.

Para crear buckets con case, puedes definir una dimensión, como un bucket para los importes de los pedidos:

  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"
    }
  }

Por lo general, el parámetro case ordenará los valores en el orden en que se enumeran los buckets. Para la dimensión order_amount_bucket, el orden de los buckets es Pequeño, Mediano y Grande:

Si deseas ordenar los datos de forma alfanumérica, agrega el parámetro alpha_sort a la dimensión, como se muestra a continuación:

  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 las dimensiones en las que se desean muchos valores distintos en el resultado (esto requeriría que definas cada resultado con una sentencia WHEN o ELSE), o cuando quieras implementar una sentencia ELSE más compleja, te recomendamos que uses una CASE WHEN de SQL, que se analiza en la siguiente sección.

Obtén más información sobre el parámetro case en la página de documentación Parámetros de campo.

Usa SQL CASE WHEN para el agrupamiento

Se recomienda una instrucción CASE WHEN de SQL para el agrupamiento más complejo o para la implementación de una instrucción ELSE con más matices.

Por ejemplo, es posible que desees usar diferentes métodos de agrupamiento, según el destino de un pedido. Podría usarse una instrucción CASE WHEN de SQL para crear una dimensión de bucket compuesta, en la que la instrucción THEN muestra dimensiones en lugar de cadenas:

dimension: compound_buckets {
  sql:
    CASE
      WHEN ${orders.destination} = 'US' THEN ${us_buckets}
      WHEN ${orders.destination} = 'CA' THEN ${canada_buckets}
    ELSE ${intl_buckets}
    END ;;
}