You need to enable JavaScript to run this app.
导航

字段与字段表达式 FAQ

最近更新时间2024.01.03 14:48:21

首次发布时间2024.01.03 14:48:21

1. 数据源字段与数据集字段

背景:用户在使用「添加字段」功能时,会发现左侧的字段列表有两类。一个是数据源字段,一个是数据集字段。那么这两者的区别是什么?用户在写表达式的时候该选哪类字段?
alt

1.1 什么是数据源字段?

数据源字段,顾名思义,就是来自于数据源的字段。例如下图中的数据集,数据源是飞书表格,飞书表格自身包含的字段就是数据源字段。

1.2 什么是数据集字段?

数据集字段,也就是数据集中包含的字段。这些字段并不是数据源本身的字段,而是数据集自动创建的字段,以及用户使用表达式新建的字段。

1.3 数据源字段与数据集字段有什么区别?

数据源字段是无法直接被查询的,在可视化查询页面的左侧,展示的字段列表都属于数据集字段。
alt
数据集的数据源在被解析后,数据集会在字段配置页面,给每一个数据源字段,自动生成一个数据集字段,这些初始的数据集字段的表达式,就是其对应的数据源字段本身。
例如下图中“支付类型”数据集字段,它的表达式就是'支付类型'这个数据源字段。

1.4 同名的数据源字段和数据集字段有什么区别?

数据源字段代表的结果是数据源最初的结果,而数据集字段则要遵循字段具体的表达式。
以下举一个例子帮助理解:
当数据集字段的表达式与数据源字段相同时,那么此时,数据集字段和数据源字段是没有区别的。例如下图中「一级渠道」数据集字段,它的表达式就是`一级渠道`这个数据源字段,所以两者的结果是相同的。

而由于数据集字段的表达式是可以被任意修改的,所以有些数据集字段的表达式在后期经过修改后,会导致它们的表达式与原本对应的数据源字段并不相同。
例如下图中「二级渠道」字段,它的表达式可能在最初也是 `二级渠道` ,但是现在被修改成了 count(`二级渠道`),这时候这两个字段代表的含义就完全不同了,如果想要使用「二级渠道」本身的含义,就需要选择数据源字段。

至于用户新建的字段,因为没有对应的数据源字段就不需要考虑这个问题。

2. 公共字段与个人字段

背景:数据集的字段类型主要分为两种:数据集字段和个人字段。数据集字段也可以称作公共字段。

2.1 什么是公共字段,什么是个人字段?

公共字段,是数据集中的字段,这些字段是被直接添加到数据集中的,每个有权限的用户都可以看到并且使用这些字段。例如下图中用户都能看到的字段就是公共字段。
alt
公共字段是数据集本身的字段,添加公共字段就相当于修改了数据集,所以需要有数据集编辑权限的用户才能够添加公共字段。
因为数据集内容不能被轻易修改,所以数据集的编辑权限是一个比较高的权限,仅少数用户拥有。
但是,如果有用户在使用这个数据集的时候,想要添加字段,那么用户可以添加个人字段,个人字段不会影响数据集本身的功能。
alt

2.2 如何选择添加公共字段或个人字段?

在添加字段时,左下角会有一个「保存到数据集」的选项,如果勾选了这个选项,那么这个字段就会被保存到数据集中,成为数据集字段,也就是公共字段。
若没有勾选,则创建的是个人字段。

注意

创建公共字段涉及到修改数据集,所以只有拥有数据集编辑权限的用户才可以选择「保存到数据集」选项,只有编辑以下权限的用户只能创建个人字段。

alt

2.3 个人字段有什么特点以及怎么区分?

(1)仔细观察下图,「季度进度」是公共字段,「本季度天数」是个人字段。个人字段在字段列表以及放在字段栏中的时候,字体是斜体,同时,在字段栏中的字体颜色为蓝色。
alt
(2)在添加字段时,公共字段和个人字段都可以被引用,但是,当个人字段被引用时,会带上 [个人] 的前缀,以提示这是个人字段。例如下图,第一行为公共字段,第二行为个人字段。
alt
(3)个人字段只会展示在创建者的字段列表中,其他用户是搜索不到的。
但是,DataWind支持分享查询链接给其他用户,那么如果当前用户的查询中用到了个人字段,然后再分享给其他用户,会有什么影响呢?
参考下图,其他用户可以在图表中查看到当前用户的个人字段,不过在字段栏中,个人字段的字体颜色为灰色,同时,字体是斜体。其他用户没有权限搜索到当前用户的个人字段,但是可以进行将对应字段从维度拖到指标此类的操作。

注意

如果用户点击分享链接后,发现一个字段是灰色的,那么它不一定是其他用户的个人字段。当一个字段是数据集字段,但是它在数据集中被删除了,那么在查询链接中,它的字体颜色也为灰色。如何判断这个字段是个人字段还是被删除的字段呢?参考下图,斜体是个人字段,非斜体是被删除的字段。

2.4 为什么直接复制其他用户的表达式创建字段会报错?

个人字段只能被其创建者引用,如果该表达式引用了其他用户的个人字段,那么直接使用这个表达式创建字段就会报错。
alt

2.5 怎么查看其他用户的个人字段的表达式?

有数据集的编辑权限的用户可以查看,并且只能够查看被放在了图表中的其他用户个人字段。用户可以直接点击字段栏前的倒三角,在展开的选项中选择「修改字段」,就能够看到这个字段的表达式。
alt
如果当前个人字段在筛选栏中,没有「修改字段」选项,那么可以将当前字段拖到维度或指标栏中,再选择「修改字段」进行查看。

注意

如果此个人字段的表达式又引用了其他的个人字段,那么无法进一步查看被引用的其他个人字段。

2.6 总结

问题公共字段个人字段
概念数据集本身的字段,或用户添加到数据集的字段用户自己创建的字段,未添加到数据集
如何创建勾选保存到数据集或在数据集添加不勾选保存到数据集
创建或修改所需权限数据集编辑及以上权限数据集查看及以下权限
谁可以使用或搜索到所有有数据集权限的人字段的创建者
使用有无区别
能否被其他字段表达式引用能(公共字段表达式无法引用个人字段)
当前用户如何区分是否是个人字段字体不为斜体字体为斜体,放在字段栏字体为蓝色,提示信息会显示个人字段
其他用户如何区分是个人字段还是已被删除字段字体不为斜体字体为斜体
3. 其他常见问题

3.1 什么是字段表达式?

字段的表达式主要由字段和函数组成,也可能会有常量或者参数,如需引用其他字段,被引用的字段必须在左侧的字段列表中被搜索到,在右侧也给出了一些常用的函数。

3.2 维度和指标有什么区别?

维度和指标没有明确的界限。以班级成绩数据集为例,若需要查看班级中每个学生的成绩,则学生姓名是维度,成绩是指标。若需要查看每个分段学生的数量,则分数是维度,姓名的计数是指标。

3.3 为什么有的字段不能被拖到维度?

检查当前字段是否为聚合字段,聚合字段无法作为维度。

3.4 什么是聚合字段?

简单来说,若一个字段的表达包含聚合函数,或者引用了其他聚合字段,那么这个字段为聚合字段。

3.5 什么是聚合函数?

聚合就是把多个数据项经过某些计算方式合并成一个总体。例如最常见的 sum 函数,sum 的作用是将一组数据求和得出一个值,这其实就是一个聚合的过程,其他的函数如count、avg、max、min、quantile、groupArray等都是聚合函数。当一个字段的表达式中使用了这些函数时,这个字段就是一个聚合字段。

3.6 如何识别一个字段是否为聚合字段?

除了通过表达式判断外,还可以将字段放进指标栏,指标胶囊前面显示「聚合」的字段即为聚合字段,否则为非聚合字段。

3.7 非聚合字段放在指标栏前面显示的「求和」是什么意思?

除明细表外,其他的图表在进行查询的时候,会自动对非聚合字段添加一种聚合方式,例如下图中的字段,在进行查询时会自动聚合,数值类型默认的聚合方式是求和,图表中展示的值也就是这个字段求和的结果。

用户可以点击指标前面的倒三角选择其他的聚合方式。

对于聚合字段,因为其已经被聚合,所以指标胶囊前会显示「聚合」两字,同时无法再选择其他的聚合方式。

3.8 可以把聚合字段放在维度中吗?

当一个分层字段(用作维度)中用到了聚合函数,可以使用LOD函数。LOD函数可以计算按照指定维度聚合的结果,重要的是,LOD函数里面虽然用到了聚合,但是它的计算结果不是聚合字段。
有关LOD函数的详细介绍详见《LOD函数帮助文档

举例:按照每个省份的付款金额总和对省份进行分层,大于等于100000000的为一级,小于100000000且大于等于10000000的为二级,其他为三级,最后想要统计每个分层的省份数量。
一般来说,用户可能会按照下图的表达式计算。

但是这个字段只能放在指标中,不能放在维度,这就是因为这个表达式使用了聚合函数,是聚合字段。
alt
此时可以将sum('付款金额')替换为LOD函数:{filter=true:fixed [省份]:sum(付款金额)}

这样创建出来的字段就可以被放在维度中。
alt
alt

3.9 字段的口径问题&字段的数据跟线上对不上应该问谁?

背景: DataWind平台并不了解用户数据集中存储的是什么数据,也不了解各个字段的口径,这些问题只有数据集的管理员了解。
当用户正在查看仪表盘时遇到了类似的问题,可以询问仪表盘的所有者。
alt
当用户在进行可视化查询的时候遇到了类似的问题,可以先询问当前正在查询的数据集的所有者。
alt