cancel_grouping_fields

Uso

explore: explore_name {
  cancel_grouping_fields: [
    fully_scoped_field,
    fully_scoped_field,
    ...
  ]
}
Jerarquía
cancel_grouping_fields
Valor predeterminado
Ninguno

Acepta
Corchetes que contienen una lista separada por comas de nombres de campos con alcance completo

Reglas especiales

Definición

cancel_grouping_fields te permite evitar que Looker agregue una cláusula GROUP BY al código SQL que genera. Si el usuario incluye alguno de los campos que especificas, Looker no agrupará los datos. Por lo general, esta función se usa para mejorar el rendimiento de las consultas en tablas muy grandes. Excepto en circunstancias raras y únicas, solo debes incluir campos que sean únicos para cada fila de la tabla, como la clave primaria.

Dado que las medidas de Looker representan funciones de agregación de SQL, que requieren una cláusula GROUP BY para funcionar, debes tener en cuenta que cancel_grouping_fields no funcionará con ninguna consulta que incluya medidas. Además, cancel_grouping_fields no funciona cuando se usa relationship: one_to_many o relationship: many_to_many.

Por último, ten en cuenta que los campos que enumeres deben tener un alcance completo. En otras palabras, deben escribirse como view_name.field_name y no simplemente como field_name.

Ejemplos

No agrupes los resultados si el usuario elige ID de pedido en el selector de campos:

explore: order {
  cancel_grouping_fields: [order.id]
}

No agrupes los resultados si el usuario elige ID de pedido o Hash del pedido en el selector de campos:

explore: order {
  cancel_grouping_fields: [order.id, order.hash]
}

No agrupes los resultados si el usuario elige ID de persona o ID de ADN en el selector de campos:

explore: person {
  cancel_grouping_fields: [person.id, dna.id]
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    relationship: one_to_one
  }
}

Desafíos habituales

cancel_grouping_fields requiere nombres de campos con alcance completo

La mayoría de los parámetros en Looker supondrán un nombre de vista, según el lugar en el que se use el parámetro, si escribes un nombre de campo por sí solo. cancel_grouping_fields no funciona de esta manera y requiere que escribas el nombre de la vista y el nombre del campo.

Por ejemplo, podrías pensar que esto funcionaría y que id se interpretaría como el ID de pedido que aparece en el selector de campos:

explore: order {
  cancel_grouping_fields: [id]
}

Sin embargo, este no es el caso, y recibirás un error. En cambio, debes escribir lo siguiente:

explore: order {
  cancel_grouping_fields: [order.id]
}

cancel_grouping_fields se activa cuando se elige cualquier campo especificado, no requiere que se elijan todos los campos.

Si especificas más de un campo en cancel_grouping_fields, se cancelará la agrupación si un usuario selecciona cualquier campo de la lista. No es necesario que el usuario seleccione todos los campos de la lista. Por este motivo, las claves primarias de varias columnas no funcionan con cancel_grouping_fields.

Información importante

No es necesario cancel_grouping_fields para que Looker funcione correctamente. Se utiliza para mejorar las consultas en tablas grandes.

Cuando escriben código SQL de forma manual, la mayoría de las personas no incluyen una cláusula GROUP BY, a menos que sea absolutamente necesario. En algunos casos, Looker también evita las cláusulas GROUP BY innecesarias. Si una de las dimensiones de tu consulta se definió como la clave primaria (con el parámetro primary_key) de la exploración que estás usando, se descartará la cláusula GROUP BY.

Sin embargo, hay algunos casos en los que otra dimensión, que no es la clave primaria, define una fila única. En estos casos, Looker puede generar un GROUP BY innecesario, ya que agrupar por dimensiones es una parte fundamental del funcionamiento de Looker. En la mayoría de los casos, esto no generará ningún problema. Los resultados se mostrarán de la manera que esperas y serán rápidos.

Sin embargo, en algunas tablas muy grandes, las cláusulas GROUP BY innecesarias pueden alargar los tiempos de consulta. Esta es la situación ideal para usar cancel_grouping_fields.