用法
view: view_name {
set: set_name {
fields: [field, field, …]
}
}
|
层次结构
set |
可能的字段类型
维度、维度组、过滤字段、衡量指标
接受
以方括号括起来的字段名称列表
|
定义
当在其他需要字段列表的参数(例如 fields [用于联接] 和 drill_fields [用于字段])中引用时,集合非常有用。
您可以使用 set 参数定义每个集合。一个集可以包含当前视图中的任意数量的维度、衡量指标或过滤字段,包括由维度组生成的各个维度。它还可以使用 view_name.field_name 语法包含其他视图中的字段。
在 set 参数中,添加 fields 参数,然后列出字段,如以下示例所示:
set: my_first_set {
fields: [
dimension_one,
another_view.dimension_two,
measure_one
]
}
集合还可以包含其他集合。为了区分集名称与维度或度量名称,请添加 * 字符。例如:
set: my_first_set {
fields: [
dimension_one,
another_view.dimension_two,
measure_one
]
}
set: my_second_set {
fields: [
dimension_three,
measure_two
]
}
set: my_third_set {
fields: [
my_first_set*,
my_second_set*
]
}
名为 my_third_set 的集合将包含以下字段:
dimension_oneanother_view.dimension_twomeasure_onedimension_threemeasure_two
最后,可以使用 - 字符排除字段。例如:
set: my_first_set {
fields: [
dimension_one,
another_view.dimension_two,
measure_one
]
}
set: my_second_set {
fields: [
dimension_three,
measure_two
]
}
set: my_third_set {
fields: [
my_first_set*,
my_second_set*
]
}
set: my_fourth_set {
fields: [
my_first_set*,
-measure_one
]
}
名为 my_fourth_set 的集合将包含以下字段:
dimension_oneanother_view.dimension_two
示例
创建名为 financial_data 的集合
set: financial_data {
fields: [
subtotal,
shipping,
tax,
total,
cost,
profit
]
}
在客户视图中创建一个名为 basic_customer_data 的集,该集还引用了客户订单事实视图:
set: basic_customer_data {
fields: [
name,
address,
status,
customer_order_facts.lifetime_orders,
customer_order_facts.lifetime_revenue
]
}
常见挑战
其他视图中的字段必须与使用 set 的探索联接
如果您想引用 set 中来自其他视图的字段,则需要确保该视图已联接到使用 set 的探索。例如,以下代码将无法正常运行:
模型文件
explore: orders { ... }
查看文件
view: orders {
set: customer_info {
fields: [customer.name]
}
}
在此示例中,customers 未与 orders 联接,因此无法在 customer_info 集内引用 customers 中的字段。
将 dimension_group 中的字段添加到集合中
如果您想将 dimension_group 中的字段添加到某个集合,则需要单独添加每个时间范围维度。例如,请考虑以下 dimension_group:
dimension_group: created {
type: time
timeframes: [date, week, month]
sql: ${TABLE}.created_at ;;
}
您无法向此类集合添加“日期”“周”和“月”维度:
set: created_timeframes {
fields: [created]
}
您需要单独添加时间范围,如下所示:
set: created_timeframes {
fields: [
created_date,
created_week,
created_month
]
}