cancel_grouping_fields

使用状況

Explore: explore_name [
cancel_grouping_fields: [
階層
cancel_grouping_fields
デフォルト値
なし

許可
範囲が限定されたフィールド名のカンマ区切りリストを含む角かっこ

特別なルール
  • 各フィールドは view_name.field_name 構文を使用してすべて指定する必要があります。
  • クエリにメジャーが含まれていると正しく機能しません
  • relationship: one_to_many または relationship: many_to_many では使用できません

定義

cancel_grouping_fields を使用すると、Looker で生成される SQL に GROUP BY 句を追加できなくなります。指定したフィールドのいずれかがユーザーに含まれる場合、Looker はグループ化されません。この機能は通常、非常に大きなテーブルのクエリのパフォーマンスを改善するために使用されます。まれで一意の状況を除いて、テーブルの各行に固有のフィールド(主キーなど)のみを含める必要があります。

Looker メジャーは SQL 集計関数を表しますが、これには GROUP BY 句が機能するために必要であるため、cancel_grouping_fields はメジャーを含むレポートでは機能しないことに注意してください。また、relationship: one_to_many または relationship: many_to_many を使用している場合、cancel_grouping_fields は機能しません。

最後に、指定するフィールドは完全にスコープ設定されている必要があります。つまり、単に field_name ではなく view_name.field_name と記述します。

ユーザーがフィールド選択ツールで [オーダー ID] を選択した場合、結果をグループ化しないでください。

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

ユーザーがフィールド ピッカーで [オーダー ID] または [オーダー ハッシュ] を選択した場合、結果をグループ化しないでください。

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

ユーザーがフィールド ピッカーで [Person ID] または [DNA ID] を選択した場合、結果をグループ化しないでください。

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

一般的な課題

cancel_grouping_fields には、完全にスコープ設定されたフィールド名が必要です

Looker のほとんどのパラメータは、フィールド名を単独で記述する場合、そのパラメータが使用される場所に基づいてビュー名を想定します。cancel_grouping_fields はこれでは機能せず、ビュー名とフィールド名の両方を記述する必要があります。

たとえば、これは機能し、id がフィールド ピッカーに表示されるオーダー ID として解釈されるかもしれません。

explore: order {
  cancel_grouping_fields: [id]
}

ただし、このような場合は例外としてエラーが表示されます。代わりに、次のように記述する必要があります。

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

cancel_grouping_fields: 指定フィールドのいずれかが選択された場合にトリガーされます。すべてのフィールドを選択する必要はありません。

cancel_grouping_fields で複数のフィールドを指定した場合、ユーザーがリスト内のいずれかのフィールドを選択すると、グループ化はキャンセルされます。ユーザーがリストのすべてのフィールドを選択する必要はありません。このため、複数列の主キーは cancel_grouping_fields では機能しません。

知っておくべきこと

Looker が適切に動作するために cancel_grouping_fields は必要ありません。大規模なテーブルのクエリを改善できる

SQL を手動で記述する場合、必要不可欠である場合を除き、ほとんどのユーザーは GROUP BY 句を含めません。Looker は、不要な GROUP BY 句を回避する場合もあります。クエリのいずれかのディメンションが、使用している Explore の主キー(primary_key パラメータを使用)として定義されている場合、GROUP BY 句は削除されます。

ただし、主キーではない別のディメンションで一意の行が定義される場合もあります。この場合、Looker が機能するための基本的な要素としてディメンションによるグループ化が行われるため、不要な GROUP BY が生成されることがあります。ほとんどの場合、これによって問題が生じることはありません。期待どおりの結果がすぐに表示されます。

ただし、非常に大きなテーブルでは、不要な GROUP BY 句を使用するとクエリ時間が長くなる可能性があります。これは、cancel_grouping_fields を使用するのに理想的な状況です。