创建动态层级

层级是划分价值的绝佳方式。不过,对于 LookML type: tier 维度,这些分桶是预定义和静态的。有时,您可能希望创建一个动态层级,让用户可以更改分桶大小。为此,您可以在 Looker 中将仅限过滤条件的字段(称为 parameter 参数)与模板语言(称为 Liquid)结合使用。

如果您有权创建或修改自定义字段,还可以使用自定义分箱在“探索”中直接创建动态层级。

如需创建动态层级,请执行以下操作:

  1. 创建一个 type: number 参数,用作前端过滤字段,供用户输入所需的数字分桶大小。
  2. 创建一个维度,使用 Liquid 变量 {% parameter parameter_name %} 引用参数值。此维度用于确定各种存储桶,并会将存储桶大小动态更改为用户在前端过滤条件字段(parameter 参数)中输入的值。

例如,开发者创建了一个动态年龄段,让用户可以按自定义范围对年龄值进行分桶:

以下示例的 SQL 语法可能需要进行调整,以适应您的数据库方言。
  parameter: age_tier_bucket_size {
    type: number
  }

  dimension: dynamic_age_tier {
    type: number
    sql: TRUNCATE(${TABLE}.age / {% parameter age_tier_bucket_size %}, 0)
          * {% parameter age_tier_bucket_size %} ;;
  }

用户现在可以在“探索”中为年龄列选择层级值。例如,用户可能希望将年龄分为 10 年一个桶,因此会在年龄段分桶大小过滤条件中输入值 10

在“用户年龄段分桶大小”过滤条件中,将值设为 10,然后使用“用户动态年龄段”和“用户数”进行探索。

dynamic_age_tier 维度中的 SQL 表达式会将底层 ${TABLE}.age 列中的年龄值(例如 25)除以参数值 10,得出 2.5。值 2.5 会被 TRUNCATE 函数截断为 2,然后乘以参数值 10,结果为 20。20 成为分桶依据;20 到 29 之间的任何年龄值都包含在 20 分桶中。