annulla_raggruppamento_campi

Utilizzo

Explore: Explore_name {
cancel_grouping_fields: [
full_Scope_field,
full_Scope_field,

...
]
}
Gerarchia
cancel_grouping_fields
Valore predefinito
Nessuna

Accetta
Parentesi quadre che contengono un elenco separato da virgole di nomi dei campi con ambito completo

Regole speciali

Definizione

cancel_grouping_fields ti consente di impedire a Looker di aggiungere una clausola GROUP BY all'SQL generato. Se uno dei campi specificati include l'utente, Looker non raggrupperà. Questa funzionalità viene in genere utilizzata per migliorare le prestazioni delle query su tabelle di grandi dimensioni. Tranne che in rare e uniche circostanze, devi includere solo i campi univoci per ogni riga della tabella, ad esempio la chiave principale.

Poiché le misure di Looker rappresentano funzioni aggregate di SQL, che richiedono una clausola GROUP BY per funzionare, devi tenere presente che cancel_grouping_fields non funzionerà con alcun report che include misure. Inoltre, cancel_grouping_fields non funziona quando viene utilizzato relationship: one_to_many o relationship: many_to_many.

Infine, tieni presente che i campi dell'elenco devono avere un ambito completo. In altre parole, devono essere scritte come view_name.field_name e non semplicemente come field_name.

Esempi

Non raggruppare i risultati se l'utente sceglie ID ordine nel selettore campi:

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

Non raggruppare i risultati se l'utente sceglie ID ordine o hash ordine nel selettore campi:

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

Non raggruppare i risultati se l'utente sceglie ID persona o ID DNA nel selettore campi:

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

Sfide comuni

cancel_grouping_fields richiede nomi di campo con ambito completo

La maggior parte dei parametri in Looker presumerà un nome vista, in base alla posizione in cui viene utilizzato, se scrivi il nome di un campo da solo. cancel_grouping_fields non funziona in questo modo e richiede la scrittura sia del nome della vista che del campo.

Ad esempio, potresti pensare che questa soluzione possa funzionare e che id venga interpretato come l'ID ordine visualizzato nel selettore di campi:

explore: order {
  cancel_grouping_fields: [id]
}

Tuttavia, non è così e riceverai un errore. Devi scrivere:

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

cancel_grouping_fields viene attivato quando viene scelto qualsiasi campo specificato; non è necessario scegliere tutti i campi

Se specifichi più di un campo in cancel_grouping_fields, il raggruppamento verrà annullato se un utente seleziona qualsiasi campo nell'elenco. All'utente non è richiesto di selezionare tutti i campi dell'elenco. Per questo motivo, le chiavi primarie multicolonna non funzionano con cancel_grouping_fields.

Aspetti da tenere presenti

cancel_grouping_fields non è necessario per il corretto funzionamento di Looker. È per il miglioramento delle query su tabelle di grandi dimensioni

Nella scrittura a mano di SQL, la maggior parte degli utenti non includerà una clausola GROUP BY, a meno che non sia assolutamente necessario. In alcuni casi, Looker evita inoltre clausole GROUP BY non necessarie. Se una delle dimensioni nella query è stata definita come chiave principale (utilizzando il parametro primary_key) dell'opzione che stai utilizzando, la clausola GROUP BY verrà eliminata.

Tuttavia, in alcuni casi, un'altra dimensione, che non è la chiave principale, definisce comunque una riga univoca. In questi casi Looker potrebbe generare un GROUP BY non necessario, perché il raggruppamento per dimensioni è una parte fondamentale del funzionamento di Looker. Nella maggior parte dei casi, questo non causa problemi. I risultati verranno visualizzati come previsto e saranno veloci.

Tuttavia, in alcune tabelle di dimensioni molto grandi, le clausole GROUP BY non necessarie possono allungare i tempi di query. Questa è la situazione ideale per utilizzare cancel_grouping_fields.