1. 描述
公司部门之间都存在层级关系,每个部门都会有唯一的部门ID 对应,比如说总部(ID为1),市场部(ID为11,该层级的第一位为第一层的ID 值)业务员(ID为111,该层级的第一位为第一层级的值,第二位为第二层级的值),市场部是总部下面的分属部门,业务员是市场部的下属部门,数据库中存储部门信息的时候,都是将所有部门ID 放在一个数据列中,并没有将总部作为一个数据列,市场部作为一个数据列,那么在进行数据分析的时候,如果要显示各个部门的层级关系,并按照层级关系分组显示数据,就没法直接添加维度
来实现分组效果,如下图效果,这个该如何实现呢?
主流BI 工具FineBI 为了实现这种层级关系提供了构建自循环列功能,自循环列一般应用于上述的列内分组以及下拉框的层级选择,设置方式完全相同,以列内分组为例,下面详细介绍。
2. 示例
一般来说,拥有层级关系的ID 有2种存储方式:
ID 长度不一致
如公司部门表中数据,ID的长度不一致,每增加一个层级,长度就会增加相应位数,并
且前面的数据与上一级保持一致:
3.ID 长度一致
如下图,ID的长度保持一致,长度为部门的总层级数乘以每个层级的相应位数:
以公司部门表中数据为例,为BIDemo 业务包添加公司部门表,数据表的添加方式请查
看数据表管理。
4.点击公司部门,进入主流BI 工具FineBI 的公司部门配置界面,点击右边ETL 处理中间的表名字按钮,选择构建自循环列
,如下图:
5.页面跳转到主流BI 工具FineBI 的自循环列管理界面,如下图,点击自循环列设置后面的下拉项,可以看到构建自循环列有两种方式:一个是根据一列数据分层,一个是根据两
列数据分层:
下面根据构建方式的不同分别讲解。
6. 根据一列数据分层
在主流BI 工具FineBI 中根据一列数据分层是指根据有层级关系的一列数据直接构建每个层级的数据列,一般在数据库中只有该部门ID 列,没有上级ID 列的时使用。
7. 构建关系
在构建自循环列中选择根据一列数据分层,由于有层级关系的列为部门ID,所以分层依据的ID 列选择部门ID
,如下图:
8.注:如果分层依据的ID 的长度都是一样的,即像上面所说的第二种层级关系的存储方式,那么,在构建关系时,需要输入分层长度,以上述ID 长度一致的数据表为例,分层长度是2,即每2
位代表一个层级,自循环构建如下图:
注:上述的2种层级关系存储方式,主流BI 工具FineBI 会自动识别,如果是长度不一致的存储方式,不会显示分层长度选项。
9.新增列名称
点击构建关系,就会显示所有级别,并需要给各个级别重命名,如下图:
10.点击保存,即可在主流BI 工具FineBI 的数据表的配置界面看到新增的数据列:
点击保存,自循环列就构建好了。
11. 新建分析
点击新建分析,新建一个即时分析,拖曳表格组件至分析页面,进入主流BI 工具FineBI 的数据配置界面,在左侧的数据选择面板中选中BIDemo 业务包,点开部门名称字段,可以看到其下面有三个子字段,这是在该数据表是自循环列表,根据部门ID 字段和上级ID
进行了自循环列设置,多出了三列数据,故,部门名称也对应的多了三个字段:
12.将公司部门表的部门名称作为行表头,记录数作为数值区域的指标,从上图可以看到部门名称字段也被自循环为三列数据呢,分别俺级别显示,直接将这三个级别的部门名称拖曳至行表头中即可:
横向表头会显示红色,提示其没有与值标签建立关系,这是因为部门ID 作为自循环列的基础列,增加了3个数据列,导致该表中的所有字段均对应有3个数据列,如果让部门名称与部门记录数关联,必须通过新增的3个列去关联,那么可以通过3条路径进行关联,3条路径分别是新增的3个字段,即关联关系不再唯一,所以需要重新建立关联关系。
13.点击行表头部门名称后面的下拉按钮,选择维度与指标的匹配关系选项,进入主流BI 工具FineBI 的指标的标签数据界面,设置关联字段,点击修改选中的1个指标的维度字段,选择对应维度字段,点击公司部门>部门名称,可以看到部门名称字段下面有子字段,这是因为部门ID 构建自循环列,增加了3列,对应的,部门名称也增加了3列数据,这里选择一级.部门名称,如下图:
14.将指标名称修改为一级部门,点击保存配置之后,一级部门名称就已经设置好了,此时,行表头的部门名称指标不再显示为红色,且下方表格中显示所有一级部门名称的数据,
如下图:
类似于一级部门名称的设置方式,再为行表头添加2个指标维度,指标字段均为部门名称,并设置数据标签,分别关联二级部门名称和三级部门名称,切修改指标名称为二级部门和三级部门,即可完成设置。
15. 效果查看
如下图:
16根据两列数据分层
根据两列数据分层是指根据有数据表中有2列数据,一个数所有层级的部门ID,还有一列数据指定对应层级的上级部门ID,在这种数据结构下,可用根据两列数据分层。
17. 构建关系
同根据一列数据分层的设置方式类似,选中数据表,点击构建自循环列,选择根据两列数据分层,如下图:
点击构建关系,接下来的设置过程和使用过程同根据一列数据分层,这里不再赘述。
1. 描述
公司部门之间都存在层级关系,每个部门都会有唯一的部门ID 对应,比如说总部(ID为1),市场部(ID为11,该层级的第一位为第一层的ID 值)业务员(ID为111,该层级的第一位为第一层级的值,第二位为第二层级的值),市场部是总部下面的分属部门,业务员是市场部的下属部门,数据库中存储部门信息的时候,都是将所有部门ID 放在一个数据列中,并没有将总部作为一个数据列,市场部作为一个数据列,那么在进行数据分析的时候,如果要显示各个部门的层级关系,并按照层级关系分组显示数据,就没法直接添加维度
来实现分组效果,如下图效果,这个该如何实现呢?
主流BI 工具FineBI 为了实现这种层级关系提供了构建自循环列功能,自循环列一般应用于上述的列内分组以及下拉框的层级选择,设置方式完全相同,以列内分组为例,下面详细介绍。
2. 示例
一般来说,拥有层级关系的ID 有2种存储方式:
ID 长度不一致
如公司部门表中数据,ID的长度不一致,每增加一个层级,长度就会增加相应位数,并
且前面的数据与上一级保持一致:
3.ID 长度一致
如下图,ID的长度保持一致,长度为部门的总层级数乘以每个层级的相应位数:
以公司部门表中数据为例,为BIDemo 业务包添加公司部门表,数据表的添加方式请查
看数据表管理。
4.点击公司部门,进入主流BI 工具FineBI 的公司部门配置界面,点击右边ETL 处理中间的表名字按钮,选择构建自循环列
,如下图:
5.页面跳转到主流BI 工具FineBI 的自循环列管理界面,如下图,点击自循环列设置后面的下拉项,可以看到构建自循环列有两种方式:一个是根据一列数据分层,一个是根据两
列数据分层:
下面根据构建方式的不同分别讲解。
6. 根据一列数据分层
在主流BI 工具FineBI 中根据一列数据分层是指根据有层级关系的一列数据直接构建每个层级的数据列,一般在数据库中只有该部门ID 列,没有上级ID 列的时使用。
7. 构建关系
在构建自循环列中选择根据一列数据分层,由于有层级关系的列为部门ID,所以分层依据的ID 列选择部门ID
,如下图:
8.注:如果分层依据的ID 的长度都是一样的,即像上面所说的第二种层级关系的存储方式,那么,在构建关系时,需要输入分层长度,以上述ID 长度一致的数据表为例,分层长度是2,即每2
位代表一个层级,自循环构建如下图:
注:上述的2种层级关系存储方式,主流BI 工具FineBI 会自动识别,如果是长度不一致的存储方式,不会显示分层长度选项。
9.新增列名称
点击构建关系,就会显示所有级别,并需要给各个级别重命名,如下图:
10.点击保存,即可在主流BI 工具FineBI 的数据表的配置界面看到新增的数据列:
点击保存,自循环列就构建好了。
11. 新建分析
点击新建分析,新建一个即时分析,拖曳表格组件至分析页面,进入主流BI 工具FineBI 的数据配置界面,在左侧的数据选择面板中选中BIDemo 业务包,点开部门名称字段,可以看到其下面有三个子字段,这是在该数据表是自循环列表,根据部门ID 字段和上级ID
进行了自循环列设置,多出了三列数据,故,部门名称也对应的多了三个字段:
12.将公司部门表的部门名称作为行表头,记录数作为数值区域的指标,从上图可以看到部门名称字段也被自循环为三列数据呢,分别俺级别显示,直接将这三个级别的部门名称拖曳至行表头中即可:
横向表头会显示红色,提示其没有与值标签建立关系,这是因为部门ID 作为自循环列的基础列,增加了3个数据列,导致该表中的所有字段均对应有3个数据列,如果让部门名称与部门记录数关联,必须通过新增的3个列去关联,那么可以通过3条路径进行关联,3条路径分别是新增的3个字段,即关联关系不再唯一,所以需要重新建立关联关系。
13.点击行表头部门名称后面的下拉按钮,选择维度与指标的匹配关系选项,进入主流BI 工具FineBI 的指标的标签数据界面,设置关联字段,点击修改选中的1个指标的维度字段,选择对应维度字段,点击公司部门>部门名称,可以看到部门名称字段下面有子字段,这是因为部门ID 构建自循环列,增加了3列,对应的,部门名称也增加了3列数据,这里选择一级.部门名称,如下图:
14.将指标名称修改为一级部门,点击保存配置之后,一级部门名称就已经设置好了,此时,行表头的部门名称指标不再显示为红色,且下方表格中显示所有一级部门名称的数据,
如下图:
类似于一级部门名称的设置方式,再为行表头添加2个指标维度,指标字段均为部门名称,并设置数据标签,分别关联二级部门名称和三级部门名称,切修改指标名称为二级部门和三级部门,即可完成设置。
15. 效果查看
如下图:
16根据两列数据分层
根据两列数据分层是指根据有数据表中有2列数据,一个数所有层级的部门ID,还有一列数据指定对应层级的上级部门ID,在这种数据结构下,可用根据两列数据分层。
17. 构建关系
同根据一列数据分层的设置方式类似,选中数据表,点击构建自循环列,选择根据两列数据分层,如下图:
点击构建关系,接下来的设置过程和使用过程同根据一列数据分层,这里不再赘述。