kettle开发篇-列转行

简介: kettle开发篇-列转行

前言:


前面我们讲到了将一个字段拆分为多个字段,知道我们字段的横向分裂,从一个字段分为两个字段。学习了列拆分为多行,知道了怎么将一行的值拆分为多行,今天我们来学习一个列的高级操作,列传行,对于初学者来说,列传行也是一个比较高级的操作了,下面我们来看看列转行的语法和使用场景吧。


一、列转行


列转行就是如果数据一列有相同的值,按照指定的止损,把多行数据转换为一行数据。列转行以后会增加许多新的列,和拆分字段一样,原来被转换的列就会消失了。这就是列转行的原理。如下图所示,有七行数据分别代表张三周一至周日的工作小时,我们想实现的最终效果是,其中的星期被拆分为7列分别来存储工作小时。这样七行数据,最后就只剩下一行数据了。

需要注意的是列转行在转换前也需要进行排序操作,具体我们可以看到列转行主要包括关键字段即我们需要转换的字段,如星期,分组字段是我们相同的主字段,如姓名,目标字段是生成的字段名,数据字段是工作小时,即是目标字段的存储值。


二、任务


从EXCEL读取数据,按照姓名进行分组,把星期、工作小时从列转为行,并保存在EXCEL中。

最终我们的转换包括EXCEL输入、列转行、EXCEL输出。其中EXCEL输入和之前一样选择输入的EXCEL表格位置,并获取字段,重点阐述列转行,首先指定关键字段即我们需要转换的数据列,在我们的任务中就是星期字段,然后就是我们分组的字段即姓名,需要注意的是我们生成的新字段,根据数据来,数据中是周一至周日因此我们的列转行新字段名也分别是周一至周日。然后通过关键数据来查找。

需要注意的是我们做这个需求时,必须先排序字段值再进行列转行。好的,快去试试吧。

相关文章
|
6月前
|
数据采集 前端开发 数据挖掘
kettle开发-SQ索引优化
kettle开发-SQ索引优化
115 0
|
25天前
|
SQL 关系型数据库 Shell
SQL整库导出语录及其实用技巧与方法
在数据库管理和备份恢复过程中,整库导出是一项至关重要的任务
|
2月前
|
SQL JSON 分布式计算
ODPS SQL ——列转行、行转列这回让我玩明白了!
本文详细介绍了在MaxCompute中如何使用TRANS_ARRAY和LATERAL VIEW EXPLODE函数来实现列转行的功能。
|
6月前
|
SQL 数据挖掘 数据库
SQL数据分析实战:从导入到高级查询的完整指南
SQL数据分析实战:从导入到高级查询的完整指南
149 0
|
6月前
kettle开发篇-行转列
kettle开发篇-行转列
367 0
|
6月前
|
存储
kettle开发篇-列拆分为多行
kettle开发篇-列拆分为多行
265 0
|
6月前
|
数据库
kettle开发篇-分组
kettle开发篇-分组
152 0
【SQL开发实战技巧】系列(二十七):数仓报表场景☞通过对移动范围进行聚集来详解分析函数开窗原理以及如何一个SQL打印九九乘法表
本篇文章讲解的主要内容是:***通过执行计划看开窗函数开窗语法rows\range between preceding and current row以及rows\range between unbounded preceding and unbounded following对移动范围的值进行聚集的原理以及区别】、如何通过一个SQL打印九九乘法口表!!!***
【SQL开发实战技巧】系列(二十七):数仓报表场景☞通过对移动范围进行聚集来详解分析函数开窗原理以及如何一个SQL打印九九乘法表
|
数据采集 运维 Ubuntu
使用kettle进行数据的多表关联
使用kettle进行数据的多表关联
|
SQL Oracle 关系型数据库
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
本篇文章讲解的主要内容是:***目前Oracle支持的行列互换有两种方式:case when、pivot\unpivot,我将通过几个案例来给大家详解如何通过这两种方式实现“行转列”,“列转行”的需求,并通过执行计划看case when、pivot\unpivot二者的底层逻辑关系以及效率上的影响。***
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的