cancel_grouping_fields

Uso

explore: explore_name {
cancel_grouping_fields: [
completamente_alcance_campo,
completamente_alcance_campo,

...
]
}
Jerarquía
cancel_grouping_fields
Valor predeterminado
Ninguna

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

Reglas especiales

Definición

cancel_grouping_fields te permite evitar que Looker agregue una cláusula GROUP BY al SQL que genera. Si alguno de los campos que especificas está incluido por el usuario, Looker no agrupará. Por lo general, esta funcionalidad se usa para mejorar el rendimiento de las consultas en tablas muy grandes. Excepto en raras y únicas circunstancias, 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 ningún informe 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 alcances completos. En otras palabras, deben escribirse como view_name.field_name, no solo como field_name.

Ejemplos

No agrupe los resultados si el usuario elige Order ID en el selector de campos:

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

No agrupe los resultados si el usuario elige Order ID o Order Hash en el selector de campo:

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

No agrupe los resultados si el usuario selecciona Person ID o DNA ID 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 campo con alcance completo

Si escribes un nombre de campo en sí mismo, la mayoría de los parámetros en Looker supondrán un nombre de vista, según el lugar que se use. 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 se mostrará un mensaje de error. En su lugar, debes escribir lo siguiente:

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

cancel_grouping_fields se activa cuando se elige cualquier campo especificado, no es necesario elegir todos los campos

Si especificas más de un campo en cancel_grouping_fields, la agrupación se cancelará si un usuario selecciona cualquiera de los campos 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.

Qué debes saber

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

Cuando se escribe SQL de forma manual, la mayoría de las personas no incluirán una cláusula GROUP BY a menos que sea absolutamente necesaria. Looker también evita las cláusulas GROUP BY innecesarias en algunos casos. Si una de las dimensiones de tu consulta se definió como la clave primaria (mediante 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) aún define una fila única. En estos casos, Looker puede generar un GROUP BY innecesario, ya que la agrupación por dimensiones es una parte fundamental de cómo funciona Looker. En la mayoría de los casos, esto no causará ningún problema. Los resultados se mostrarán de la forma que esperas y serán rápidos.

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