Gruppierungsfelder abbrechen

Nutzung

Explore: Name_Name {
cancel_grouping_fields: [
full_scope_field,
full_scope_field,

...
]
}
Hierarchie
cancel_grouping_fields
Standardwert
Keine

Akzeptiert
Eckige Klammern mit einer durch Kommas getrennten Liste vollständig ausgefüllter Feldnamen

Sonderregeln

Definition

Mit cancel_grouping_fields können Sie verhindern, dass Looker eine GROUP BY-Klausel zu dem von ihr generierten SQL hinzufügt. Wenn eines der Felder, die Sie angeben, vom Nutzer eingeschlossen wird, gruppiert Looker keine Gruppen. Diese Funktion wird normalerweise verwendet, um die Abfrageleistung in sehr großen Tabellen zu verbessern. Außer in seltenen und seltenen Fällen sollten Sie nur Felder einfügen, die für jede Tabellenzeile eindeutig sind, z. B. den Primärschlüssel.

Da Looker-Messwerte SQL-Aggregatfunktionen darstellen, für die eine GROUP BY-Klausel erforderlich ist, kann cancel_grouping_fields nicht für Berichte verwendet werden, die Messwerte enthalten. Außerdem funktioniert cancel_grouping_fields nicht, wenn relationship: one_to_many oder relationship: many_to_many verwendet wird.

Beachten Sie außerdem, dass die Felder, die Sie auflisten, vollständig zugeordnet sein müssen. Mit anderen Worten: Sie sollten als view_name.field_name geschrieben sein und nicht einfach nur als field_name.

Beispiele

Gruppieren Sie die Ergebnisse nicht, wenn der Nutzer in der Feldauswahl die Option Order ID (Bestell-ID) auswählt:

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

Gruppieren Sie die Ergebnisse nicht, wenn der Nutzer in der Feldauswahl Order ID (Bestell-ID) oder Order Hash (Bestell-Hash) auswählt:

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

Gruppieren Sie die Ergebnisse nicht, wenn der Nutzer in der Feldauswahl die Option Personen-ID oder DNA-ID auswählt:

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

Häufige Herausforderungen

Für cancel_grouping_fields sind vollständige Bereichsnamen erforderlich

Die meisten Parameter in Looker übernehmen einen Ansichtsnamen, der auf dem Ort basiert, an dem der Parameter verwendet wird, wenn Sie nur einen Feldnamen schreiben. cancel_grouping_fields funktioniert nicht auf diese Weise und erfordert, dass Sie sowohl den Ansichtsnamen als auch den Feldnamen eingeben.

Beispiel: Sie könnten denken, dass dies funktioniert und id als Auftrags-ID interpretiert wird, die in der Feldauswahl angezeigt wird:

explore: order {
  cancel_grouping_fields: [id]
}

Dies ist jedoch nicht der Fall und Sie erhalten eine Fehlermeldung. Stattdessen müssen Sie Folgendes schreiben:

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

cancel_grouping_fields wird ausgelöst, wenn ein beliebiges angegebenes Feld ausgewählt wird. Es müssen nicht alle Felder ausgewählt werden.

Wenn Sie in cancel_grouping_fields mehr als ein Feld angeben, wird die Gruppierung abgebrochen, wenn ein Nutzer ein beliebiges Feld in der Liste auswählt. Der Nutzer muss nicht alle Felder in der Liste auswählen. Aus diesem Grund funktionieren Primärschlüssel mit mehreren Spalten nicht mit cancel_grouping_fields.

Wichtige Informationen

cancel_grouping_fields ist nicht erforderlich, damit Looker ordnungsgemäß funktioniert. Es dient zur Verbesserung von Abfragen bei großen Tabellen.

Bei der manuellen Eingabe von SQL enthalten die meisten Nutzer nur dann eine GROUP BY-Klausel. Looker vermeidet in manchen Fällen auch unnötige GROUP BY-Klauseln. Wenn eine der Dimensionen in der Abfrage (mit dem Parameter primary_key) der verwendeten Erkundung als Primärschlüssel definiert wurde, wird die GROUP BY-Klausel gelöscht.

Es gibt jedoch einige Fälle, in denen eine andere Dimension, die nicht der Primärschlüssel ist, immer noch eine eindeutige Zeile definiert. In diesen Fällen generiert Looker möglicherweise eine unnötige GROUP BY, da die Gruppierung nach Dimensionen ein wesentlicher Bestandteil der Funktionsweise von Looker ist. In den meisten Fällen verursacht dies keine Probleme. Die angezeigten Ergebnisse sind schnell und schnell.

In einigen sehr großen Tabellen können unnötige GROUP BY-Klauseln jedoch die Abfragezeit verlängern. Das ist die ideale Situation, in der cancel_grouping_fields verwendet werden sollte.