sql_distinct_key

使用状況

ビュー: view_name {
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
階層
sql_distinct_key
使用可能なフィールドタイプ
測定

許可
SQL 式

定義

sql_distinct_key パラメータは、反復値以外の集計(特に average_distinctmedian_distinctpercentile_distinctsum_distinct)のメジャーを実行するメジャータイプで使用されます。sql_distinct_key は、一意の値を決定する基準として使用するフィールドを Looker に指示し、ファンアウトの場合の誤計算を防ぎます。

たとえば、type: sum_distinct は、sql_distinct_key パラメータで定義された一意の値に基づいて、特定のフィールドに重複しない値を加算します。

次のようなテーブルについて考えます。

Order Item ID Order ID 注文出荷
1 1 10.00
2 1 10.00
3 2 20.00
4 2 20.00
5 2 20.00

この場合は、注文ごとに複数の行になります。[order_shipping] 列に type: sum というシンプルなメジャーを追加した場合、送料の合計は 30.00 ですが、合計で 80.00 になります。

 # Will NOT calculate the correct shipping amount
measure: total_shipping {
  type: sum
  sql: ${order_shipping} ;;
}

正確な結果を得るためには、sql_distinct_key パラメータを使用して、一意の各エンティティ(この場合は一意の順序)を Looker が識別する方法を説明できます。これにより、正しい 30.00 金額が計算されます。

 # Will calculate the correct shipping amount
measure: total_shipping {
  type: sum_distinct
  sql_distinct_key: ${order_id} ;;
  sql: ${order_shipping} ;;
}

sql_distinct_key の一意の値ごとに sql で対応する値は 1 つのみである必要があります。上記の例は、order_id が 1 のすべての行には order_shipping が 10.00 で、order_id が 2 のすべての行には order_shipping が 20.00 という同じだからです。