使用状況
measure: field_name {
type: sum_distinct
sql_distinct_key: ${my_field_name} ;;
}
}
階層
sql_distinct_key |
使用可能なフィールドタイプ
測定許可
SQL 式 |
定義
sql_distinct_key
パラメータは、反復値以外の集計(特に average_distinct
、median_distinct
、percentile_distinct
、sum_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 という同じだからです。