行列转换

编辑
文档创建者:夏娃 (超级管理员 )     浏览次数:1483次     编辑次数:14次     最近更新:doreen0813 于 2017-11-17     

目录:

1、描述编辑

FineBI中的行列转换特指将关系数据表中的行转换为列,简单来说就是将转化前数据表中某个字段的所有值取出来,配以某个指标字段,成为新表的列名。很多时候用户也会从不规范的数据源中提取数据到Fineindex中,比如将EXCEL文件导入。而excel文件的字段和展示样式并不固定,往往会与规范化的数据库表数据不能很好的兼容合并,导入excel后就有可能用到行列转换,将很多行展示数据转化为规范的列字段进行分析。

2、示例编辑

如下图所示的excel表格保存了学生成绩,每个学生都有3门课程的成绩,如果导入excel存储到数据库后每人占据3条纪录,但是正常的学生信息表的话,每个学生只有一条纪录:
222
那么如何使每位学生的成绩只占据一条记录呢,也就是说,将不同学科的值作为字段名,实现如下图效果:
222

2.1 源数据表

ETL转换表需要基于一个原始表,我们需要将此excel导入到BIDemo业务包中,参见excel导入。导入后可以打开该excel数据集进行查看。如图所示就是打开的数据集:
222

2.2 ETL行列转化

被转化的表添加完成之后,点击右侧ETL处理中间的表名称按钮,选择“对该表-行列转化”,进入行列转化配置界面,如下图:
222
根据字段识别生成的指标所在列:是指数据表中根据需要转化的字段值重复的字段,如上示例,姓名就根据“需要被转化字段-科目”重复出现(即因为有多个科目的成绩导致每个人重复出现),那么该下拉框中的字段可以选择姓名,该选项可以选择最终显示时需要唯一值的字段;
栏次名:是指需要被转化的行字段名称,如上示例,是指科目字段;
原始指标字段:原始数据表中包含的字段都会出现;
生成的指标字段:是指被转化字段所对应的值字段,如上示例,是指每个科目的成绩字段值,那么可以添加为科目种类-成绩的关系。
设置完成后,效果如下图:
222
点击保存直到回到表设置页面。
点击保存,回到业务包配置界面,可以看到业务包中多了一个成绩_concert的数据表,如下图:
222
 注:如果要更改之前设置的ETL转化表结构,点击右侧ETL处理中的行列转化即可修改。

2.3 效果查看

全部完成之后,我们需要先更新fineindex后才能看到etl操作之后的数据变化。当fineindex更新完之后,我们可以到数据表配置界面预览一下最终数据样式,如图所示:
222
如图可以看到,每个人都变成一条数据记录了,而不同科目都变为新的字段来保存成绩,完成达到我们的需求了。

附件列表


主题: 数据配置
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(微信ID:frbiaoge)

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: